这是我的项目的结构:
- “boot.asm”:进入 64 位模式,读取 CHS 并将“内核”加载到 0x100000,然后 jmp 到 0x100000
- “内核.asm”
这是“kernel.asm”:
[bits 64]
msg: db "K"
mov al, [msg]
mov ah, 3 ; cyan
mov word [0xb8000], ax
jmp $
此代码在放入“boot.asm”时有效。但是当放入“kernel.asm”时只会打印奇怪的字形或“S”......我不知道为什么。问题似乎与“味精”声明有关。例如,当我将 "msg: db "K" " 替换为 " msg equ "K" " 时,它会打印出好字符,我无法找出问题所在,您有什么建议吗?
干杯,