我正在制作一个打印 3 个字符串的引导加载程序。我可以成功打印那些由 bochs 中的行分隔的字符串,但是当我使用 Rawrite 将 512 字节引导加载程序写入 USB 并引导它时,我不能这样做。它只打印新行。我什至初始化了寄存器。
org 0x7c00
bits 16
cld
mov ax, 0
mov bx, 0
mov cx, 0
mov dx, 0
mov ds, ax
mov cs, ax
mov es, ax
mov ss, ax
mov sp, ax
jmp main
Print:
mov al, [bx]
cmp al, 0
je PrintD
mov ah, 0x0e
int 0x10
inc bx
jmp Print
PrintD:
ret
Println:
call Print
mov al, 10
int 0x10
mov al, 13
int 0x10
ret
main:
mov bx, HELLO_MSG
call Println
mov bx, GOODBYE
call Println
mov bx, THANKS
call Println
jmp $
HELLO_MSG: db "Hello World!",0
GOODBYE: db "Goodbye!",0
THANKS: db "Thank you for choosing Garg OS!",0
times 510 - ($-$$) db 0
dw 0xaa55
我只是一个初学者。这个问题对我没有帮助-代码适用于bochs但不适用于真实计算机,x86实模式