我正在嘗試使用BIOS視頻中斷在屏幕上顯示一個字符。 以下是彙編代碼:BIOS視頻服務中斷調用
mov $0x0A, %AH
mov $0x68, %AL ; to display character 'h'
int $0x10
我組裝使用GNU彙編程序產生稱爲sample.o 的對象文件sample.o的總大小是449個字節的代碼。現在我手動寫入這個目標文件的第511和第512個字節位置的十六進制數字0x55和0xAA,以使其可引導。所以我相信現在我有一個512字節的引導扇區。我用QEMU來嘗試從這個目標文件進行引導:
$> qemu -fda sample.o
的QEMU模擬器啓動,在那裏說了點凍結「從軟盤進行引導......」 但我後認爲檢測的引導扇區bios視頻中斷代碼應該運行並在屏幕上顯示一個字符。
我知道我在做可怕的錯誤。也許我錯過了中斷的整個概念。任何人都可以幫忙
編輯:所以我現在使用as86和ld86來產生剛纔的平面二進制文件。而不是在AH 0x0A我使用0x0E,它似乎是它的伎倆。看起來像bios實施問題。
我感謝所有回覆的人。
感謝
好..現在我使用bin86中的as86和ld86工具。如果我使用帶有-d選項的ld86組裝as86後,它會生成只有8個字節的平面二進制文件。 因此,我再次用0x55和0xAA手動寫入第511和512字節。 qemu仍然凍結在「從軟盤啓動...」 – Raja 2010-06-25 01:13:31
現在它的工作..我改變啊爲0x0e – Raja 2010-06-25 01:20:15