簡體   English   中英

測試本地x86程序,構建可啟動映像/驅動器

[英]Test native x86 programs, building bootable images/drives

我有下一個問題:我正在與NASM合作,構建一些本機並以這種方式進行編譯:

nasm -f bin source -o out

我正在獲取x86的本機程序。

現在最有趣的是,如何使它可啟動然后進行測試?

我認為可以通過3種方式使它們可啟動(但是對我來說,它們都失敗了:()

  • 使用mkbt實用程序(或其他類似的軟件)將其寫入軟盤
  • 建立ISO映像,並在其中編輯可引導扇區
  • 手動將內存扇區寫入USB / SD卡或其他驅動程序

至於測試,每次重新啟動PC都是很糟糕的,因此最好使用一些虛擬OS軟件,例如Vbox,VMWare等。

所以我為此使用了VBox。 用於構建ISO-我使用了CDBurnerXP。

使用cdburner,我為本機程序選擇了可啟動扇區,然后在Vbox中選擇新的ISO作為磁盤,我的程序將從中啟動。

結果始終是空白屏幕,沒有錯誤顯示,什么也沒有...

我認為我有很多錯誤...

使用mkbt,我無法將其寫入USB驅動程序。...我現在沒有flooppy,因此我無法將圖像寫入軟盤,mkbt無法寫入USB ... :(

我怎么了

我該如何解決我的問題?

只要這樣做:
nasm -f bin -o boot.bin boot.asm
qemu-啟動命令= a -fda boot.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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM