02_day-helloos3

		;启动区 所有电脑都一样
		ORG		0x7c00			

		;配置软盘参数 供启动用
		JMP		entry
		DB		0x90
		DB		"HELLOIPL"
		DW		512
		DB		1
		DW		1
		DB		2
		DW		224
		DW		2880
		DB		0xf0
		DW		9
		DW		18
		DW		2
		DD		0
		DD		2880
		DB		0,0,0x29
		DD		0xffffffff
		DB		"HELLO-OS   "
		DB		"FAT12   "
		RESB	18				

entry:		;初始化一些主要寄存器
		MOV		AX,0
		MOV		SS,AX
		MOV		SP,0x7c00
		MOV		DS,AX
		MOV		ES,AX

		MOV		SI,msg;将标号msg赋值给SI寄存器,在这里msg代表的是一个地址
putloop:
		MOV		AL,[SI];SI中装的是一个地址,从地址中取值,赋值给AL
		ADD		SI,1	;移到下一个地址
		CMP		AL,0
		JE		fin
		MOV		AH,0x0e
		MOV		BX,15
		INT		0x10	;打印msg中的信息  int 0x10的使用可查百度
		JMP		putloop
fin:
		HLT			;使CPU进入休眠的指令
		JMP		fin				

msg:					;此处就是我们要打印的信息
		DB		0x0a, 0x0a	;换行
		DB		"hello, world"
		DB		0x0a
		DB		0

		RESB	0x7dfe-$	;0x7dfe第一个扇区结束地址,此处$代表当前代码的地址,RESB是开辟内存指令,并填充0	 0x7dfe-0x7c00恰好一个扇区	

		DB		0x55, 0xaa

		DB		0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
		RESB	4600
		DB		0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
		RESB	1469432

时间: 2024-12-12 05:56:59

02_day-helloos3的相关文章

20天自制操作系统(一)

为什么博文分类以及博文名字叫"20天自制操作系统"呢? 因为6月11日到7月还有接近20天的时间,所以我取整,接近20天内学完. <30天自制操作系统> 作者  川合秀实   译者  周自恒,李黎明,曾箱江,张文旭 这本书. PS:从5月20号到6月10日,除了上班之外,下班就是吃喝玩,浪费了特别多的时间.看到BIT祝威日进千里,我深感惭愧.所以我决定"改邪归正". 好了,开始. 首先罗列出工具: ----------------------------

尊作状兹仔佐左嘴驻滋椎篆奏爪住自卓子

http://www.ebay.com/cln/rjjv_jlpx/2015-02-12/179286953011http://www.ebay.com/cln/rjjv_jlpx/2015-02-12/179286961011http://www.ebay.com/cln/rjjv_jlpx/2015-02-12/179286968011http://www.ebay.com/cln/rjjv_jlpx/2015-02-12/179286977011http://www.ebay.com/cl

《30天自制操作系统》02_day_学习笔记

helloos3: helloos.nas的解释在P29中 接下来课本讲了一些汇编语言的知识,便于理解这个汇编文件helloos4: 讲解在P41 helloos.nas后半部分去掉就成了ipl.asm ipl.asm是用来制作启动区的,启动区只需要最初的512字节 输入顺序 asm--makeimg--run asm   ipl.asm->ipl.bin   ipl.lst makeimg   ipl.bin->helloos.img run 加载运行helloos.img镜像helloos

30天自制OS笔记:2 汇编语言学习与Makefile入门

进一步提高代码的高级程度,在之前的代码基础上修改,所以先拷贝再重命名为helloos.nas: 感觉还是添加个git比较方便,等helloos3完成后添加个git,这样可以保留历史,而不用每次都被覆盖了. --------------------------------- 先回顾下昨天的程序结构: 只有显示部分,昨天看懂了,继续2016年9月7日18:37:10,说实话那个 因为只能提醒很麻烦,所以取消notepad++自动补全: ? ? 下面把对代码的注释添加上: 寄存器: ? ? X表示扩展