;启动区 所有电脑都一样 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