单片机-汇编语言程序设计例题[文字可编辑].ppt

单片机-汇编语言程序设计例题[文字可编辑].ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BCDHEX: MOV R0, # 40H ; R0 MOV R1, # 03 ; 计数值送 R1 MOV R2, # 0 ; MOV A, @R0 MOV R3, A LOOP: MOV A, R3 MOV B, # 10 MULAB MOV R3, A ; (R3) × 10 的低 8 位送 R3 MOV A, B XCHA, R2 ; (R3) × 10 的高 8 位暂存 R2 MOVB, # 10 MULAB ADD A, R2 MOVR2, A ; R2 × 10+ ( R3 × 10 )高 8 位送 R2 INCR0 ; 取下一个 BCD MOV A, R3 ADDA, @R0 MOVR3, A MOV A, R2 ADDC A, # 0 ; MOVR2, A DJNZ R1, LOOP RET 8 运算程序 一、 加、 例 18 将 40H 开始存放的 10 个字节的数与 50H 开始存放 的 10 个字节的数相减(假设被减数大于减数)。 设被减数指针为 R0, 减数指针为 R1, 差数放回被减数单元 , R5 存放字节个数 , 则程序如下 : SUB: MOV R0, # 40H MOV R1, # 50H MOV R5, # 10 CLR C SUB1: MOV A, @R0 SUBB A, @R1 MOV @R0, A INC R0 INC R1 DJNZ R5, SUB1 RET 二、 在计算机中 , 常将乘法采用移位和加法来实现。 例 19 将( R2R3 )和( R6R7 )中双字节无符号数相乘 , 结果存入 R4R5R6R7 。 此乘法可以采用部分积右移的方法来实现 , 其程序框图 如图 4.6 所示 , 程序如下 : NMUL: MOV R4, # 0 ; MOV R5, # 0 CLR C MOV R0, # 16 NMUL1: MOV A, R4 ; CyR4R5R6R7 RRC A MOV R4, A MOV A, R5 RRC A MOV R5, A MOV A, R6 RRC A MOV R6, A MOV A, R7 RRC MOV R7, A JNC NMUL2; C MOV A, R5 ; ( R4R5 ) + ( R6F7)→ ( R4R5 ) 汇编语言程序设计例题 例 1 两个无符号双字节数相加。 设被加数存放于内部 RAM 的 40H (高位字节) , 41H (低位字节) , 加数存放于 50H (高位字节) , 51H (低位字节) , 和数存入 40H 和 41H 单元中。 程序如下 : START: CLR C ; 将 Cy MOV R0, # 41H ; 将被加数地址送数据指针 R0 MOV R1, # 51H ; 将加数地址送数据指针 R1 AD1: MOV A, @R0 ; 被加数低字节的内容送入 A ADD A,@R1 ; MOV @R0, A ; DEC R0 ; DEC R1 ; MOV A, @R0 ; 被加数高位字节送入 A ADDC A, @R1 ; 两个高位字节带 Cy MOV @R0, A ; RET

文档评论(0)

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

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

1亿VIP精品文档

相关文档