| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 450 人关注过本帖
标题:[求助],多位数相加然后显示的问题
只看楼主 加入收藏
xwvlb
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-9-6
收藏
 问题点数:0 回复次数:2 
[求助],多位数相加然后显示的问题

,同志们快来帮忙啊,晕啊,怎么就出不来呢
附件: 游客没有浏览附件的权限,请 登录注册
搜索更多相关主题的帖子: 位数 相加 
2007-10-10 22:55
xwvlb
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-9-6
收藏
得分:0 
DATA SEGMENT
DATA1 DB 33H,39H,31H,37H,34H ;第一个数据(作为被加数)
DATA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为加数)
DATA ENDS
STACK SEGMENT ;STACK'STACK' ;堆栈段
STA DB 32 DUP(?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV SI,OFFSET DATA2
MOV CX,05H
CALL DISPL ; 显示被加数
CALL CRLF ; 回车、换行
MOV SI,OFFSET DATA1
MOV CX,05H ;显示加数
CALL DISPL
CALL CRLF ; 回车、换行
MOV DI,OFFSET DATA2
CALL ADDA ;加法运算
MOV SI,OFFSET DATA1
MOV CX,05H ;显示结果
CALL DISPL
CALL CRLF
MOV AX,004CH
INT 21H
CRLF PROC NEAR ;回车、换行 于功能
MOV DL,0DH ;回车
MOV AH,02H
INT 21H
MOV DL,0AH ;换行
MOV AH,02H
INT 21H
RET
CRLF ENDP
DISPL PROC NEAR ;显示于功能
DSL: MOV DL,[SI+BX-1] ;显示字符串中一字符
MOV AH,02;????
INT 21H ;
DEC CX ;修改偏移量
JNZ DSL
RET
DISPL ENDP
ADDA PROC NEAR
MOV DX,SI
MOV BP,DI
MOV CX,05h
AD1: SUB BYTE PTR[SI+BX-1],30H
SUB BYTE PTR[DI+BX-1],30H
DEC CX ;将ASCII码表示的数字串转化为十六进制串
JNZ AD1
MOV SI,DX
MOV DI,BP
MOV CX,05H ;包括进位,共5位
CLC ;清进位位
AD2: MOV AL,[SI]
MOV BL,[DI]
ADC AL,BL ;带进位相力口
AAA ;非组合BCD码的加法调整
MOV [SI],AL ;结果送被加数区
INC SI
INC DI ;指向下一位
LOOP AD2 ;循环
MOV SI,DX
MOV DI,BP
MOV CX,05H
AD3: ADD BYTE PTR [SI+BX-1],30H
ADD BYTE PTR [DI+BX-1],30H
DEC CX ;十六进制的数字串转化为ASCll码表示的串
JNZ AD3
RET
ADDA ENDP
CODE ENDS
END START   
2007-10-10 22:56
xwvlb
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-9-6
收藏
得分:0 
就是这个程序,怎么也出不来。大家帮帮忙啊
2007-10-10 22:57
快速回复:[求助],多位数相加然后显示的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016760 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved