2

以下に基づいて簡単なブートローダーを作成しました: http://www.viralpatel.net/taj/tutorial/hello_world_bootloader.php

画面には「Booting...」のみが表示されるはずですが、定義した各メッセージも表示されます(「Booting...Remove disk and press enter for reboot...」)。どうすれば修正できますか?

これは私のコードです:

[BITS 16]
[ORG 0x7C00]

xor ax,ax
mov ds,ax

mov si, msg_boot
call printline

loop:
jmp loop

reboot:
mov si, msg_remove_disk
call printline
call .inputcheck
ret
.inputcheck:
call input
cmp al, 13
je .end
jmp .inputcheck
.end:
call reset
ret

reset:
db 0Eah
dw 0000h
dw 0FFFFh
ret

exit:
ret

print:
mov al, [si]
inc si
or al, al
jz exit
mov ah, 0x0E
int 0x10
jmp print

printline:
call print
mov al, endofline
call print
ret

input:
mov ah, 0
int 16h
ret

msg_boot db 'Booting...', 0
msg_remove_disk db 'Remove disk and press enter for reboot...', 0

endofline db 13, 10, 0

TIMES 510 - ($ - $$) db 0
DW 0xAA55
4

1 に答える 1

1

mov al, endofline は mov si, endofline である必要があります

ありがとう@フランク・コトラー

于 2013-07-09T17:09:07.293 に答える