这个问题的读者您好。
我想知道如何组合 2 个引导加载程序
首先我会告诉你我的两个引导加载程序是如何工作的
第一个显示一条消息并要求按一个键,当您按一个键时,它应该显示第二个引导加载程序,它会执行其他无关紧要的操作。
我需要知道如何更改引导加载程序,从第一个引导加载程序更改为第二个引导加载程序?
之后我问你建议我使用什么程序来组合两个引导加载程序.bin,我使用make、dd还是windows复制命令?
如果你不明白请告诉我,我会回答你的问题。
谢谢。
我正在尝试让第一个引导加载程序切换到第二个引导加载程序。 我等待按键来显示第二个引导加载程序 唯一发生的事情是只显示第一个引导加载程序,并且当按下某个键时,qemu 崩溃。
如果你想重启执行,那是不可能的。但是,您可以使用简单的代码轻松跳转到另一个“引导加载程序”:
bits 16 ; 16-bit code
org 0x7c00 ; Set image base
xor ax, ax
mov ds, ax
jmp boot1
jmp boot2
boot1:
; From https://www.youtube.com/watch?v=qrRGprIIOgo
cld
mov si, msg
.loop:
lodsb
cmp al, 0
je done
mov ah, 0Eh
int 10h
jmp .loop
ret
done:
; Code from WinAsm example
int 21h ; Call the DOS interrupt (DOS function call)
mov ah, 0 ; Call bios function "GET KEYSTROKE"
int 16h
boot2:
; do something you wanted here
jmp boot1 ; dummy, you can change it according to the requirements
ret
msg db "Press any key...", 0
times 510 - ($ - $$) db 0
dw 0xAA55 ; Signature
(不算两个bootloader,而是算两个程序跳转到两个不同的bootloader)