- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言实现2个任意数相加
DATAS SEGMENT??? ??? X DB 100 DUP(?)??? ??? Y DB 100 DUP(?)??? ??? Z DB 100 DUP(?),$;此处输入数据段代码? DATAS ENDSSTACKS SEGMENT??? ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT??? ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:??? MOV AX,DATAS??? ??? MOV DS,AX??? ??? MOV BX,0DATAX:??? ??? MOV AH,01H?? ;01回显,将数据存放在AL中 ??? INT 21H? ??? CMP AL,+?? ;+与输入的数据相减是否为0,即用“+作为X的结束标志”JZ A1??????? ;判断,为0时,跳转A1,不为0,执行下一条语句??? PUSH AX????? ;将AX整个16位(包括AH,AL)一起进栈??? INC BX?????? ;计数??? JMP DATAX??? ;循环将X的每个位依次输入??A1:
??? MOV CX,BX??? MOV SI,0A11:
????POP AX?????? ;将AX内的数据出栈??? MOV X[SI],AL ;将AL的数据保存到X段中??? INC SI??? LOOP A11???? ;依次循环保存??? ??? MOV BX,0DATAY:?? MOV AH,01H??? INT 21H??? CMP AL,=??? JZ A2??? PUSH AX??? INC BX??? JMP DATAY
?A2:
????MOV CX,BX??? MOV SI,0A12:POP AX??? MOV Y[SI],AL??? INC SI??? LOOP A12??? ;同理,此处是以=作为Y值的结束标志,输入Y值并保存在Y段??? RESULT:??? CLC??????? ??? PUSHF??????? ;CF先进栈??? MOV CX,100??? MOV SI,0??? MOV DI,99?A3:
MOV AL,X[SI] ;将X段数据放在AL中??? MOV DL,Y[SI] ;将X段数据放在DL中???? ??? POPF??? ADC AL,DL??? ;考虑进位运算,AL+DL+CF??? AAA??????? ??? PUSHF??? ADD AL,30H?? ;转换成ASCII码??? MOV Z[DI],AL ;将结果从第99位倒着保存到Z段中??? INC SI??? DEC DI??? LOOP A3????? ;依次循环将结果保存到Z段???MOV SI,0A4:
CMP Z[SI],30H????JNZ A5??? INC SI??? JMP A4????? ;从第0位开始判断,看Z[SI]中的数据是否为0??? ?A5:
????LEA DX,Z[SI] ??? MOV AH,09H? ;直到不为0的数据那一位是开始显示到第99位??? INT 21H ??? MOV AH,4CH??? INT 21HCODES ENDSEND ST
文档评论(0)