- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
顺序程序设计
将两个多位十进制数相加,要求被加数、加数均以ASCⅡ码形式各自顺序存放在以DATA1和DATA2为首的五个内存单元中(低位在前),结果送回DATA1处。
DATA SEGMENT
DATA1 DB 34H,35H,39H,38H,36H, ;被加数
DATA2 DB 37H,34H,33H,36H,32H, ;加数
DATA ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA SI,DATA1 ;有效地址送SI,为调用显示子程序做准备
CALL DISPLAY ;调用显示子程序
CALL CRLF ;调用回车换行子程序
LEA SI,DATA2 ;有效地址送SI,为调用显示子程序做准备,同时为加法运算做准备
CALL DISPLAY ;调用显示子程序
CALL CRLF ;调用回车换行子程序
LEA DI,DATA1 ;有效抵制送DI,为加法运算做准备
MOV AX,0
MOV BX,0
MOV CL,05H ;记录循环次数
ADDS:MOV AL,[SI] ;将加数送往AL
SUB AL,30H
ADD AL,BL ;加上进位
MOV BL,[DI] ;将被加数送往BL
SUB BL,30H
ADD AL,BL ;加法运算
ADD AL,30H
CMP AL,3AH
JA SUBA ;结果=10,跳到SUBA
JB NSUBA
SUBA: SUB AL,0AH ;减去10的值,并置BL为1 MOV BL,01H
JMP CONTINUE
NSUBA: MOV BL,00H ;置BL为0
CONTINUE:MOV [DI],AL ;将相加的结果从AL送往DI的地址,即DATA1的地址
INC DI ;地址加1
INC SI ;地址加1
LOOP ADDS ;循环
JC SHUCHU
JNC SHUCHU2
SHUCHU2:MOV AL,31H ;CF为1设置结果最高位为1 JMP CONTINUE2
SHUCHU:MOV AL,30H ;CF为0设置结果最高位为0
CONTINUE2:MOV [DI],AL
LEA SI,DATA1 ;将DATA1的有效地址送往SI,为调用DISPLAY子程序做准备 CALL DISPLAY ;调用DISPLAY子程序 MOV AX,4C00H ;返回DOS INT 21H
MAIN ENDP
CRLF PROC NEAR ;回车、换行于功能 MOV DL,0DH
MOV AH,02H INT 21H MOV DL,0AH
MOV AH,02H INT 21H
RET
CRLF ENDP
DISPLAYPROC NEAR ;显示于
文档评论(0)