网站大量收购独家精品文档,联系QQ:2885784924

单片机原理与应用 汇编语言程序设计简介.ppt

单片机原理与应用 汇编语言程序设计简介.ppt

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

* 4.2.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 所示 * 图4.6 NMUL程序框图 * 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)+(R2F3)→(R4R5) * ADD A, R3 MOV R5, A MOV A, R4 ADDC A, R2 MOV R4, A NMUL2: DJNZ R0, NMUL1 ; 循环16位 MOV A, R4 ; 最后结果再移一位 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 A MOV R7, A RET * 例 20 假定被乘数在(R4R3)中, 乘数放在R2中, 乘积放在R7R6和R5中。  MCS - 51 中有 8 位数的乘法指令MUL, 用它来实现多字节乘法时, 可表示为 (R4R3)×(R2) =[(R4)×28+(R3)]×(R2) =(R4)×(R2)×28+(R3)×(R2) 其中(R4)×(R2)和(R3)×(R2)都是可直接用MUL指令来实现, 而乘以28意味着左移 8 位。由此可编写如下程 序: * NMUL1: MOV A, R2  MOV B, R3 MUL AB ; (R3)×(R2) MOV R5, A ; 积的低位送R5 MOV R6, B ; 积的高位送R6 MOV A, R2 MOV B, R4 MUL AB ; (R4)×(R2) ADD A, R6 ; (R3)×(R2)的高位加(R4)×(R2)的低位 MOV A, B ADDC A, #00H ; (R4)×(R2)的高位加Cy MOV R7, A ; 结果送R7 RET * 三、 除法运算程序 除法是乘法的逆运算, 用移位、 相减的方法来完成。 首先比较被除数的高位字与除数, 如被除数高位大于除数, 则商为1, 并从被除数中减去除数, 形成一个部分余数; 否则商位为 0, 不执行减法。 然后把新的部分余数左移一位, 并与除数再次进行比较。循环此步骤, 直到被除数的所有位都处理完为止,一般商的字长为 n, 则需循环n次。 一般计算机中, 被除数均为双倍位, 即如果除数和商为双字节, 则被除数为四字节。如果在除法中发生商大于规定字节, 称为溢出。 在进行除法前, 应该检查是否会产生溢出。一般可在进行除法前, 先比较被除数的高位与除数, 如被除数高位大于除数, 则溢出, 置溢出标志, 不执行除法。 * 图 4.7 除

文档评论(0)

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

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

1亿VIP精品文档

相关文档