装配 - 打印字符

时间:2013-07-09 12:55:30

标签: assembly ascii nasm bios

到目前为止,我正在尝试学习汇编语言并做了一些简单的步骤。我可以使用ascii-id在屏幕上显示字符,但现在我想将特定字符的id存储到变量中并打印它们。不幸的是,这不起作用:)我的代码只在屏幕上显示一个空格。感谢您的各种帮助!

[BITS 16]
[ORG 0x7C00]

; MOV AL, 48 (works)

MOV AL, [false]
CALL PrintCharacter

JMP $

PrintCharacter:
MOV AH, 0x0E
MOV BH, 0x00
MOV BL, 0x07

INT 0x10
RET

false db 48
true db 49

TIMES 510 - ($ - $$) db 0
DW 0xAA55

1 个答案:

答案 0 :(得分:1)

您需要ds:false对指向false的地址,因此您需要设置数据段(通过ds寄存器)。由于您的[ORG 0x7c00]指令,标签false的值已经是必需的,因此您只需将ds设置为0。

xor ax,ax
mov ds,ax

只需将其放在代码的开头。