我刚开始创建我的第一个操作系统,我想从一个非常简单的 Bootstrap 开始,基本上只是打印一个非常简单的字符串。但是我不明白为什么,不管是什么字符串,虚拟机(qemu)只打印一个'U'
这是我的代码:
ORG 0x7c00
BITS 16
%include "lib/print.asm"
boot:
mov si, boot_msg
call Print
jmp $
boot_msg: db "The os is correctly loaded!", 0
times 510 - ($ - $$) db 0
dw 0xAA55
打印函数**(lib/print.asm)**:
Print:
mov ah, 0x0e
mov al, [si]
psloop:
int 0x10
inc si
mov al, [si]
cmp al, 0
jne psloop
ret
ret
1条答案
按热度按时间9udxz4iz1#
我把
jmp boot
放在打印标签之前。使用
nasm -f bin boot.asm -o boot.bin
编译boot.asm将
boot.bin
复制到qemu文件夹并运行qemu-system-i386 -fda boot.bin