测试本机x86程序,构建可引导的映像/驱动器



我有下一个问题:我正在使用NASM,构建一些本机并以这种方式编译:

nasm -f bin source -o out

我正在获取x86的本机程序。

现在最有趣的是,我如何使它可引导,然后进行测试?

我认为有3种方法可以引导(但对我来说,它们都失败了:()

  • 使用mkbt实用程序(或其他类似的软件)将其写入软盘
  • 构建ISO图像,并在其中编辑可引导扇区
  • 手动将内存扇区写入usb/sd卡或其他驱动程序

至于测试,所有时候重启电脑都很糟糕,所以最好使用一些虚拟操作系统软件,如Vbox、VMWare等。

所以我用VBox做这个。为了构建ISO-我使用了CDBurnerXP。

使用cdburner,我为我的本机程序选择了可引导扇区,然后在Vbox中选择新的ISO作为引导程序的磁盘。

结果总是空屏幕,没有显示任何错误,只是什么都没有。。。

我想,我有很多错误。。。

使用mkbt,我无法将其写入usb驱动程序。。。。我现在没有软盘,所以我无法将图像写入软盘,mkbt无法写入usb…:(

我做错了什么?

我该如何解决我的问题?

只需执行以下操作:
nasm-f bin-o boot.bin boot.asm
qemu-引导顺序=a-fda引导.bin

你应该看到信息。对于其他模拟器,您需要将图像填充到1474560字节。

boot.asm:

        BITS 16
        ORG 0
        jmp 0x07c0:start
start:
        mov ax, cs
        mov ds, ax
        mov si, msg
        call print_string
hang:
        jmp hang
print_string:
        cld
        lodsb
        or al, al
        jz .done
        mov ah, 0x0E
        int 0x10
        jmp print_string
.done:
        ret
msg:    db 'Hello World!', 13, 10, 0
        times 510-($-$$) db 0
        dw 0xAA55

最新更新