【问题标题】:How to add code to MINIX bootloader?如何将代码添加到 MINIX 引导加载程序?
【发布时间】:2017-08-29 19:48:57
【问题描述】:

我希望 MINIX 先执行我的代码,然后继续执行默认引导加载程序。

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

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

重新启动后,我的程序启动了,但之后系统当然不会加载。我该怎么做才能将原始引导加载程序“附加”到我的代码中?

【问题讨论】:

    标签: boot bootloader minix


    【解决方案1】:

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

    如果您坚持,您可以在MINIX(GAS 汇编程序)、previous releases of MINIX(ACK 语法,接近但与 NASM 不同)、SYSLINUX 中找到使用 cmets 执行此操作的汇编代码使用 NASM、on the web 等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-14
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多