写了个MBR,却不能用,求指教
写了个最基本的MBR,功能是把程序自身拷贝到0600然后跳转到061D执行下一条语句,并且将写入到0/0/3扇的程序读取到
7C00后,跳转到7c00处执行原MBR。
我使用nasm boot.asm -o boot.bin指令汇编的程序
我在XP虚拟机中用winhex将原MBR写到0/0/3扇,后将boot.bin写入到0/0/1扇中,可是程序并不像我想象中的那样,可以继续启动XP,求指正。
下面是源码
CLIXOR AX,AXMOV SS,AXMOV SP,7C00MOV SI,SPPUSH AXPOP ESPUSH AXPOP DSSTICLDMOV DI,0600MOV CX,0100REPNZMOVSWJMP 0000:061Dmov ax,0mov es,axmov bx,7c00hmov ax,0201hmov cx,1mov dl,80hint 13jmp 0000:7c00times 510-($-$$) db 0dw 0xaa55