求助汇编语言问题!

1、十进制加法和结果显示程序(自行设计)1)程序设计要求将数据段DSEG中的ADDOP1定义的双字变量的4位十进制数和附加段ESEG中的ADDOP2定义的双字变量的4位十... 1、十进制加法和结果显示程序(自行设计)
1)程序设计要求
将数据段DSEG中的ADDOP1定义的双字变量的4位十进制数和附加段ESEG中的ADDOP2定义的双字变量的4位十进制数相加,和存放于数据段DSEG中的SUM中,采用DOS显示功能调用将和显示在屏幕上。
2) 实验步骤:
(1)建立源程序文件。
(2)用MASM宏汇编程序和LINK连接程序生成执行程序。
(3)运行执行程序,输入不同的加数和被加数,观察结果。

2、十进制加法和算式显示程序(自行设计)
1)程序设计要求
在以上十进制数加法要求的基础上,将加法算式及和在显示器上显示。
如ADDOP1中存放1234H,在ADDOP2中存放6789H,执行程序后显示器上显示:
1234+6789=8023

这是我编的第一个程序,可是显示不是我想要的结果,求大神帮助
DSEG SEGMENT
ADDOP1 DD '1234'
SUM DB 00H,00H,00H,00H
XX DB 04H ;循环次数
DSEG ENDS
ESEG SEGMEMT
ADDOP2 DD '2345'
ESEG ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DSEG,ES:ESEG
MAIN PROC FAR
START:PUSH DS
MOV AX, 0
PUSH AX
MOV AX, DSEG
MOV DS, AX
MOV AX, ESEG
MOV ES,AX
MOV CL,XX
LEA SI,ADDOP1;赋偏移地址
LEA DI,ADDOP2
LEA BX,SUM
A1: MOV AL,[SI]
MOV AH,[DI]
ADD AL,AH
CMP AL,69H;比较字符相加是否进位
JA A2
JMP A3
A2: SUM AL,0AH;进位
ADD [BX],01H
A3: ADD [BX],AL;没有进位
SUB [BX],30H
INC SI
INC DI
INC BX
LOOP A1
MOV CL,04H
A4: MOV DL,[BX];将结果字符一个个显示
MOV AH,02H
INT 21H
DEC BX
LOOP A4
RET
MAIN ENDP
CODE ENDS
END MAIN
展开
 我来答
可轩163
2014-12-21 · TA获得超过1.3万个赞
知道大有可为答主
回答量:4824
采纳率:88%
帮助的人:1725万
展开全部
若要求计算 1234d +6789d
变量定义为 字(即双字节)类型即可:
......
ADDOP1 DW 1234d ;非字符串,不能加引号
......
ADDOP2 DW 6789d

.
.
另,将计算结果各个位数值转换为ASCC码,才能显示出来。

若提问的同学采纳我的建议,我可提供完整的有效程序。
做而论道
高能答主

2014-12-21 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
ADDOP1 DD '1234'  ?????
双字变量的4位十进制数,这样写,能行吗?

'1234',这是字符串。
定义字符串,必须使用 DB 伪指令,即:DB '1234'。

这么写,就又不是《双字变量的4位十进制数》了。
追问
因为最后要显示到屏幕上,所以我以字符的形式输入
追答
题目要求,变量,是数字。
就不能写成数字的 ASCII 码。

应该是:
ADDOP1 DD 1234

这才是:  《双字变量的4位十进制数》。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式