0

我正在制作一个打印 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实模式

4

0 回答 0