2
我想學習一個簡單的helloworld引導程序程序。指這link。我已經使用nasm
彙編器成功生成了這個彙編代碼的二進制文件,並使用仿真器bochs
運行,它工作正常。 但是,當我直接用硬盤做同樣的事情時,我無法將字符串打印到屏幕上。打印helloworld的基本引導程序程序不起作用
請在下面找到我用過的代碼。
[BITS 16]
[ORG 0x7C00]
MOV SI, HelloString
CALL PrintString
JMP $
PrintCharacter:
MOV AH, 0x0E
MOV BH, 0x00
MOV BL, 0x07
INT 0x10
RET
PrintString:
next_character:
MOV AL, [SI]
INC SI
CALL PrintCharacter
OR AL, AL
JZ exit_function
JMP next_character
exit_function:
RET
HelloString db "Pell",0
TIMES 510 - ($ - $$) db 0
DW 0xAA55
像往常一樣,你忘了初始化'DS'。 – Jester
您能否介紹一下DS的功能?我是初學者。 – skesh
我在另一個SO答案中有[Bootloader Tips](http://stackoverflow.com/a/32705076/3857942)。可能需要設置像_DS_一樣的段寄存器。當你說硬盤驅動器,你的意思是你在真正的硬件上啓動? –