Тестируйте собственные программы x86, создавая загрузочные образы / диски

У меня следующая проблема: я работаю с NASM, собираю некоторые нативные и собираю их следующим образом:

nasm -f bin source -o out

Я получаю родную программу для x86.

А теперь самое интересное, как я могу сделать его загрузочным, а затем протестировать его?

Как мне кажется, есть 3 способа сделать загрузочные (но для меня все они провалились:()

  • используя утилиту mkbt (или другую похожую программу), чтобы записать ее на дискету
  • создание ISO -образа с редактированием загрузочного сектора в нем
  • вручную записать сектор памяти на USB / SD-карту или другой драйвер

Что касается тестирования, все время перезагрузка ПК очень плохая, поэтому лучше использовать некоторые виртуальные ОС, такие как Vbox, VMWare и т. Д.

Поэтому я использовал VBox для этого. Для построения ISO - я использовал CDBurnerXP.

С помощью cdburner я выбрал загрузочный сектор для своей родной программы, а затем выбрал новый ISO в Vbox в качестве диска, с которого будет загружаться моя программа.

Результат всегда пустой экран, никаких ошибок не отображается, просто ничего...

Я думаю, что у меня много ошибок...

Используя mkbt, я не могу записать его в драйвер usb.... У меня сейчас нет flooppy, поэтому я не могу записать образ на дискету, mkbt не может записать в usb...:(

Что я не прав?

Как я могу решить мою проблему?

1 ответ

Решение

Просто сделай это:
nasm -f bin -o boot.bin boot.asm
qemu -boot order = -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
Другие вопросы по тегам