2012-08-06 21 views
1

我目前正在使用mkisofs,dd和程序集。我創建了簡單的引導程序:在可啓動媒體上找不到引導程序

BITS 16 
;------------------- 
;SIMPLE BOOTLOADER 
;------------------- 
start: 
    mov ax, 0x07C0 
    mov ds, ax 

    mov si, welcmsg 
    call printstr 

    mov ah, 0Eh 
    mov al, 65 
    int 10h 

    cli; 
    hlt;  

printstr: 
    pusha 
    mov ah, 0Eh 
    .loop: 
     mov al, byte [ds:si] 

     cmp al, 0 
     jz .end 
     int 10h 

     inc si 
     jmp .loop 
    .end: 
     popa 
    ret 
;------------------- 
;DATA 
;------------------- 
welcmsg: db "Welcome!", 0x0D, 0x0A, 0 
;------------------- 
;FILL 
;------------------- 
times 510-($-$$) db 0 
dw 0xAA55 

我使用NASM在Linux上編譯了它。成功編譯後,我複製了512字節.bin文件的內容,然後用Okteta十六進制編輯器將其粘貼到空的.img文件中。

dd if=/dev/zero of=boot.img bs=512 count=2880 

然後我用mkisofs創建.iso文件。

mkisofs -U -D -floppy-boot -b boot.img -c boot.catalog -hide boot.img -hide boot.catalog -V "test" -iso-level 3 -L -o test.iso content 

我已將此.iso映像添加到虛擬機設置,並啓動它。 面對我的問題是VirtualBox的錯誤信息:

FATAL: No bootable medium found. 

有誰知道我在做什麼錯了,我怎樣才能使它的工作?請幫忙。

+0

'mkisofs -v -r -J -o os.iso -b floppy.img <要寫入iso的文件的路徑>'爲我工作。 – 2012-08-06 08:56:45

+0

好的。現在它什麼都不做。 welcmsg和A沒有被顯示。爲什麼?什麼是你的floppy.img的大小? – user35443 2012-08-07 06:43:09

+0

1474560字節。你的代碼很好。不過,目前我沒有任何東西可以啓動ISO映像。 – 2012-08-07 08:09:01

回答

1

這是其他人正在開發SO開發引導程序。您可能想要查看OSDev以獲取更多想法,並與一個從頭開始構建它的社區聯繫起來。至於爲什麼你的努力無法啓動,我不知道是否有什麼,你需要檢查Using Virtualbox as a bootloader testing environment。正如我之前所說的,你已經開了個好頭,一切都好。乾杯!