我在Windows上使用 NASM 。我在NASM语法中有以下简单的汇编代码:
section .data
cha db 'A'
section .text
global _start
_start:
mov ah, 0xa
mov al, [cha]
mov cx, 1h
int 10h
times 510-($-$$) db 0
dw 0xaa55
我用这个命令生成我的bootloader:
nasm bootloader.asm -f bin -o bootloader.bin
我使用ROM-BIOS内置中断在屏幕上打印字符。 问题是,当我执行程序时,它不会打印“A”而是“S”。我尝试定义不同的字母,如“H”,但显示“S”。我做错了什么?
注意:代码的两个结束行只是因为我在QEMU中运行程序。换句话说,它们对于代码的执行毫无意义,但对于QEMU运行它是有意义的!