我在汇编中用21h输出变量中的单个字符怎么总是输出等号?

来源:百度知道 编辑:UC知道 时间:2024/06/04 10:01:32
程序如下
date segment
a1 db 31h
date ends
code segment
assume cs:code,ds:date
main:mov dl,[a1]
mov ah,2
int 21h
mov ah,4ch
int 21h
code ends
end main
用mov dl,a1也不行,不管变量是什么值,都输出等号,怎么回事?

mov dl, [a1]和mov dl, al,masm都把它解释为mov dl, [a1]。

你的问题是没有载入date,貌似除了cs段,其他段都必须在执行的时候手动指定:

date segment
a1 db 31h
date ends
code segment

assume cs:code,ds:date

main:mov ax, date
mov ds, ax
mov dl,[a1]
mov ah,2
int 21h
mov ah,4ch
int 21h
code ends
end main

另外,定义字符没必要那么麻烦吧,直接用单引号圈起来就可以。
比如:a1 db '1'