FAT12信息
FAT12是MS公司Dos所支持的文件系统之一,当软盘被标准格式化后:每个磁头80个磁道,每个磁道18个扇区,每个扇区512字节,所以标准软盘的容量为:2*80*18*512=1474560B=1440K=1.44M。(图一:文件系统数据结构)为:
(图二:引导程序数据结构)
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
putloop:
MOV AL,[SI]
ADD SI,1
CMP AL,0 ;到字符串最后了
JE fin
MOV AH,0x0e ;AH=0ex,AL=显示字符
MOV BX,15 ;BH=0,BL=颜色代码
INT 0x10 ;BIOS显示中断
JMP putloop
fin:
HLT ;停机指令
JMP fin ;死循环
msg:
DB 0x0a, 0x0a
DB "wangw, world"
DB 0x0a
DB 0
;RESB 0x7dfe-$ ;原书中使用下面指令,但这个在nasm中不通过,故使用times
;times 0x7dfe - ( $ - $$ ) DB 0
times 510-($-$$) DB 0
DB 0x55, 0xaa
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 4600
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 1000