大家看看我们编的汇编语言为什么不对啊?
题目是这样子的:编写程序实现将十进制数59与27相加.我们系几乎所有的人都是这样写的:
MOV AX,59
ADD AX,27
而老师说不对,应该这样写:
MOV AX,59H
MOV BX,27H
ADD BX,AX
DAA
不知道为什么?请哪位高手解释一下啊
楼上是南大的?景仰一下.
我不知道这个老师的原题是什么样子的,但我觉得
MOV AX,59
ADD AX,27
这两行代码就够了,也没有必要进行DAA
可以试试下面的代码(masm5下汇编通过)
data segment
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov al,59
add al,27
mov dl,al
mov ah,2
int 21h
mov ah,7
int 21h
mov ah,4ch
int 21h
code ends
end start
汇编 连接运行后的输出结果是一个大写的字母V(ASCII=86=59+27)所以我上面说要是有把数字转换
为ascii的宏或者过程,输出结果就更明白了.大家练习起来就很容易了.这也是大学里汇编教学不好的
地方,总是纸上谈兵.