写了个MBR,却不能用,求指教解决方法
写了个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,求指正。
下面是源码
------解决方案--------------------
要写到第一个扇区里面才可以哦
------解决方案--------------------
将分区表信息也加进自己的这个程序里再试试
写了个最基本的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,求指正。
下面是源码
- Assembly code
CLI XOR AX,AX MOV SS,AX MOV SP,7C00 MOV SI,SP PUSH AX POP ES PUSH AX POP DS STI CLD MOV DI,0600 MOV CX,0100 REPNZ MOVSW JMP 0000:061D mov ax,0 mov es,ax mov bx,7c00h mov ax,0201h mov cx,1 mov dl,80h int 13 jmp 0000:7c00 times 510-($-$$) db 0 dw 0xaa55
------解决方案--------------------
要写到第一个扇区里面才可以哦
------解决方案--------------------
将分区表信息也加进自己的这个程序里再试试