如何向MINIX bootloader添加代码?

时间:2017-04-04 14:29:52

标签: boot bootloader minix

我希望MINIX首先执行我的代码,然后继续执行默认的bootloader。

到目前为止我所拥有的是:

org 0x7c00 
jmp 0:start  
start:
    mov ax, cs      
    mov ds, ax      
    mov es, ax      
    mov ss, ax      
    mov sp, 0x8000

    ; ... my code ... ;

    ; that is supposed to mark code as bootloader:
    times 510-$+$$ db 0
    dw 0xaa55 

我的整个代码是here。我通过执行命令来运行它:

pkgin -y in nasm 
nasm -f bin my_bootloader.asm -o my_bootloader
dd bs=512 count=1 if=my_bootloader of=/dev/c0d0 
reboot

重新启动后,我的程序启动,但当然系统后来没有加载。我能做些什么来"附加"原始的bootloader到我的代码?

1 个答案:

答案 0 :(得分:0)

通常的解决方案是执行所有MBR引导加载程序所做的事情:将自己移出标准位置(00600是通常的目标位置),然后加载"常规"从磁盘的另一个扇区启动加载程序到07C00并跳转到它。

您可以在MINIX({3}}中找到使用注释的汇编代码,previous releases of MINIX(ACK语法,关闭但与NASM不同),{{ 3}}如果你坚持使用NASM,SYSLINUX等等。