书中的MBR源码
SECTION MBR vstart=0x7c00
mov ax,cs
mov ds,ax
mov es,ax
mov ss,ax
mov fs,ax
mov sp,0x7c00
mov ax,0x600
mov bx,0x700
mov cx,0
mov dx,0x184f
int 0x10
mov ah,3
mov bh,0
int 0x10
mov ax,message
mov bp,ax
mov cx,5
mov ax,0x1301
mov bx,0x2
int 0x10
jmp $
message db "1 MBR"
times 510-($-$$) db 0
db 0x55,0xaa
这段代码的功能就是打印”1 MBR“在屏幕上。分为初始化特殊寄存器和栈指针,清除屏幕,获取光标位置,打印字符串,填满MBR占的512B剩余空间
编译汇编代码
nasm -o mbr.bin, mbr.S
将编译生成的mbr.bin写入磁盘
dd if=mbr.bin of=../hd60M.img bs=512 count=1 conv=notrunc