到目前为止,我正在尝试学习汇编语言并做了一些简单的步骤。我可以使用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
答案 0 :(得分:1)
您需要ds:false
对指向false
的地址,因此您需要设置数据段(通过ds
寄存器)。由于您的[ORG 0x7c00]
指令,标签false
的值已经是必需的,因此您只需将ds
设置为0。
xor ax,ax
mov ds,ax
只需将其放在代码的开头。