首页 > 代码库 > 02_day-helloos3

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

02_day-helloos3