第三章 MCS-51单片机指令系统及汇编语言程序设计-2.pptVIP

第三章 MCS-51单片机指令系统及汇编语言程序设计-2.ppt

  1. 1、本文档共109页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 MCS-51单片机指令系统及汇编语言程序设计-2.ppt

§3-4 逻辑运算类指令 逻辑运算及移位指令共有24条, 其中逻辑指令有“与”、 “或”、 “异或”、 累加器A清零和求反20条, 移位指令4条。 1. 逻辑“与”运算指令 逻辑“与”运算指令共有如下6条, 其助记符为ANL。 逻辑“与”运算指令是将两个指定的操作数按位进行逻辑“与”的操作。 2. 逻辑“或”运算指令 逻辑“或”运算指令共有如下6条指令, 其助记符为ORL。 逻辑“或”指令将两个指定的操作数按位进行逻辑“或”操作。 它常用来使字节中某些位置“1”, 欲保留(不变)的位用“0”与该位相或, 而欲置位的位则用“1”与该位相或。 例如: 若(A)=C0H, (R0)=3FH, (3F)=0FH 执行指令: ORL A, @R0 ; (A) ← (A)∨((R0)) 结果为: (A)=CFH。 又如: 根据累加器A中4~0位的状态, 用逻辑与、 或指令控制P1口4~0位的状态, P1口的高3位保持不变。 ANL A, ; 屏蔽A的高3位 ANL P1, ; 保留P1的高3位 ORL P1, A ; 使P14~0按A4~0置位 若上述程序执行前: (A)=B5H, (P1)=6AH, 则 执行程序后: (A)=15H, (P1)=75H。 3. 逻辑“异或”运算指令 “异或”运算是当两个操作数不一致时结果为1,两个操作数一致时结果为0,这种运算也是按位进行,共有如下6条指令,其助记符为XRL。 逻辑“异或”指令常用来对字节中某些位进行取反操作,欲某位取反则该位与“1”相异或;欲保留某位则该位与“0”相异或。还可利用异或指令对某单元自身异或,以实现清零操作。 以上逻辑“与”、“或”、 “异或”各6条指令有如下共同的特点: (1) 逻辑“与”ANL、“或”ORL、“异或”XRL运算指令除逻辑操作功能不同外,三者的寻址方式相同,指令字节数相同,机器周期数相同。 (2) ANL、ORL、XRL的前两条指令的目的操作数均为直接地址方式,可很方便地对内部RAM的00H~FFH任一单元或特殊功能寄存器的指定位进行清零、置位、取反、保持等逻辑操作。 (3) ANL、 ORL、 XRL的后4条指令, 其逻辑运算的目的操作数均在累加器A中, 且逻辑运算结果保存在A中。 CLR A ; (A) ← 00H, E4 CPL A ; (A) ←(A ) , F4 第1条是对累加器A清零指令, 第2条是把累加器A的内容取反后再送入A中保存的对A求反指令, 它们均为单字节指令。若用其它方法达到清零或取反的目的, 则至少需用双字节指令。 例 1:双字节数求补码。 解:对于一个 16 位数, R3 存高 8 位,R2 存低 8 位,求补结果仍存R3、 R2。求补的参考程序如下: 循环左移 RL A ; (A n+1) ← (An) , (A0) ← (A7) ,23 带进位位循环左移 RLC A ; (A n+1) ← (An ), (CY) ← (A7 ), (A0 ) ← (CY) ,33 循环右移 RR A ; (An) ← (A n+1 ), (A7 ) ← (A0) , 03 带进位位循环右移 RRC A ; (An) ← (A n+1), (CY) ← (A0), (A7) ← (CY),13 另外,值得一提的是在前述数据传送类指令中有一条累加器A的内容半字节交换指令: SWAP A ; (A)7~4 (A)3~0, C4 它实际上相当于执行循环左移指令 4 次。该指令在BCD码的变换中是很有用的,如 3.3.2 节的例 4。 例如: 设(A)=43H, (CY)=0, 则 执行指令: RL A ; RLC A ; RR A ; RRC A ; 结果为: (A)=86H, (CY)=0 (A)=0CH, (CY)=1 (A)=06

您可能关注的文档

文档评论(0)

实验室仪器管理 + 关注
实名认证
服务提供商

本人在医药行业摸爬滚打10年,做过实验室QC,仪器公司售后技术支持工程师,擅长解答实验室仪器问题,现为一家制药企业仪器管理。

1亿VIP精品文档

相关文档