汇编实现软盘启动代码如下,做一个记录:
org 0x7c00 jmp entry db 0x90 DB "HELLOIPL" ;启动区的名称可以是任意的字符串 DW 512 ;每个扇区的大小 db 1 ;簇的大小 dw 1 ;fat的起始位置 db 2 ;fat的个数 dw 224 ;根目录的大小 dw 2880 ;该磁盘的大小(必须是2880扇区) dw 0xf0 ;磁盘的种类 dw 9 ;fat的长度(必须是9个扇区) dw 18 ;1个磁道,有几个扇区(必须是18) dw 2 ;磁头数 dd 0 ;不使用分区 dd 2880 ;重写一次磁盘大小 db 0,0,0x29 ;意义不明,固定 dd 0xffffffff ;可能是卷标号码 db "Hello-os" ;磁盘名称 db "FAT12" ;‘磁盘格式名称(8个字节) RESB 18 ;先空出18个字节 ;程序主体 entry: mov ax,0 mov ss,ax mov sp,0x7c00 mov ds,ax mov es,ax mob si,msg putloop: mov al,[si] add si,1 cmp al,0 je fin mov ah,0x0e mov bx,15 int 0x10 ;调用显卡 jmp putloop fin: hlt jmp fin ;信息显示部分] msg: db 0x0a,0x0a db "Hello,world" db 0x0a db 0 RESB 0x1fe-$ db 0x55,0xaa