无法在我的bootloader中打印.data部分中的字符

时间:2017-06-20 15:38:38

标签: assembly x86 nasm qemu bootloader

我在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运行它是有意义的!

0 个答案:

没有答案