我正在使用此代碼來處理Hello world引導程序。它不是打印出「Hello world \ n」,而是打印出「H」並掛起。我已經使用loadb成功地打印出消息,但我不明白爲什麼這種方法不起作用,因爲它看起來相當。第一個字符後掛起的Hello World引導程序
[ORG 0x7c00]
[BITS 16]
xor ax, ax ;make it zero
mov ds, ax
mov ecx, msg
bios_print:
mov al, [ecx]
add ecx,1
cmp al, 0 ;zero=end of str
je hang ;get out
cmp al,100
jge hang
mov ah, 0x0E
int 0x10
jmp bios_print
hang:
jmp hang
msg db 'Hello World', 13, 10, 0
times 510-($-$$) db 0
db 0x55
db 0xAA
編輯: 我改變了[BITS 64]到[位16]
爲什麼在計算機啓動時使用'[BITS 64]'生成64位彙編代碼,它處於16位模式 – Earlz 2012-04-15 23:53:12