求助汇编语言问题!
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 展开
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 展开
2个回答
展开全部
ADDOP1 DD '1234' ?????
双字变量的4位十进制数,这样写,能行吗?
'1234',这是字符串。
定义字符串,必须使用 DB 伪指令,即:DB '1234'。
这么写,就又不是《双字变量的4位十进制数》了。
双字变量的4位十进制数,这样写,能行吗?
'1234',这是字符串。
定义字符串,必须使用 DB 伪指令,即:DB '1234'。
这么写,就又不是《双字变量的4位十进制数》了。
追问
因为最后要显示到屏幕上,所以我以字符的形式输入
追答
题目要求,变量,是数字。
就不能写成数字的 ASCII 码。
应该是:
ADDOP1 DD 1234
这才是: 《双字变量的4位十进制数》。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询