第四章 汇编语言程序设计(第三讲)chap4_3.ppt

第四章 汇编语言程序设计(第三讲)chap4_3.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 汇编语言程序设计(第三讲)chap4_3

4.5 常见程序设计举例 程序1:将≤65535的非压缩BCD数转换成2进制数。程序如下。 ;数据段定义 mydata SEGMENT decnum DB 5, 3, 0, 1, 9 ;BCD数 53019 binnum DW ? mydata ENDS prog SEGMENT ASSUME CS:prog,DS:mydata begin: MOV AX, mydata MOV DS, AX MOV SI, OFFSET decnum MOV CX, 5 ;5位BCD数 MOV BX, 10 XOR AX, AX ;中间结果初始值为0 Next: MUL BX ;中间结果*10+本位数字 ADD AL, [SI] ADC AH, 0 INC SI ;指向下位BCD数 LOOP next MOV binnum, AX ;保存结果 MOV AH, 4CH INT 21H prog ENDS END begin 程序2:把≤255的非压缩BCD数转换成2进制数 decnum DB 1,5,9 ;BCD数159 binnum DB ? …… MOV AX,decnum XCHG AH, AL ;百位在AH, 十位在AL AAD ;百位数*10 + 十位数 MOV AH, AL ;中间结果送AH MOV AL, decnum+2 AAD ;中间结果*10 + 个位数 MOV binnum, AL …… ②ASCII码→二进制数(用于输入) 程序如下: DATA SEGMENT STR1 DB 10,?,10 DUP(?) ;第1个数的输入缓冲区 STR2 DB 10,?,10 DUP(?) ;第2个数的输入缓冲区 NUM DW ?,? ;存转换后的二进制数 SUM DW 0 ;存和 OVER DB ‘Overflow!’,13,10,’$’ DATA ENDS ; CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN PROC FAR START: MOV AX,DATA MOV DS,AX MOV AH,0AH LEA DX,STR1 INT 21H ;输入第一个数字串(设为26) MOV AH,0AH LEA DX,STR2 INT 21H ;输入第二个数字串(设为33) LEA BX,STR1 ;串1的首地址送BX LEA DI,NUM ;存二进制首地址送DI CALL CHANGE ;将串1 ASCII码→二进制 LEA BX,STR2 ;串2的首地址送BX LEA DI,NUM+2 ;指向 CALL CHANGE ;将串2 ASCII码→二进制 MOV AX,NUM ;(AX)=[NUM]=001AH ADD AX,NUM+2 ;两数相加,(AX)=003BH MOV SUM,AX ;存和 JNO NEXT

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档