51单片机之逻辑运算指令ANL、ORL、XRL等

51单片机之逻辑运算指令ANL、ORL、XRL等文章目录前言一、简单操作指令CLR、CPL、SWAPCLRACPLASWAPA二、位移指令RL、RR、RLC、RRCRLARRARLCARRCA三、逻辑“与”指令ANLANLA,XXXANLdirect,XXX四、逻辑“或”指令ORLORLA,XXXORLdirect,XXX五、逻辑“异或”指令XRLORLA,XXXXRLdirect,XXX前言…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺


前言

逻辑操作指令包括与、或、异或、清除、求反、移位等操作,其操作数都是8位


一、简单操作指令 CLR、CPL、SWAP

CLR英文全称:Clear
CPL英文全称:Complement
SWAP英文全称:Swap


CLR A

指令名称:累加器A清0指令
目的:将累加器A中的内容清零

CPL A

指令名称:累加器A取反指令
目的:将累加器A的内容逐位取反

SWAP A

指令名称:累加器半字节交换指令
目的:将累加器A的高低两半字节交换

助记符 功能 对标志位影响 字节数 周期数
P OV AC CY
CLR A 0 -> A × × × 1 1
CPL A (/A) -> A × × × × 1 1
SWAP A (AL)<–> (AH) × × × × 1 1

AL:A0123低半字节位;
AH:A4567高半字节位;
*表示无影响,√表示有影响,下同

例 (A) = 07H 即 (A) = 0000 0111B

  • CLR A:表示A的8位都位零,(A) = 0000 0000B;
  • CPL A:表示A的内容逐位取反,(A) = 1111 1000B = F8H;
  • SWAP A:表示A的高低半字节交换,(A) = 0111 0000B = 70H。

二、位移指令 RL、RR、RLC、RRC

RL英文全称:Rotate Left
RR英文全称:Rotate Right
RLC英文全称:Rotate Left throught the Carry flag
RRC英文全称:Rotate Right throught the Carry flag


RL A

指令名称:累加器A循环移指令
目的:累加器A的内容最高位变最低位,其他位都升一位

RR A

指令名称:累加器A循环移指令
目的:累加器A的内容最低位变最高位,其他位都降一位

RLC A

指令名称:累加器A连同进位位循环移指令
目的:累加器A的内容最高位进入CY,CY位的内容进入最低位,其他位都升一位

RRC A

指令名称:累加器A连同进位位循环移指令
目的:累加器A的内容最低位进入CY,CY位的内容进入最高位,其他位都升一位

助记符 功能 对标志位影响 字节数 周期数
P OV AC CY
RL A A循环左移一位 × × × × 1 1
RR A A循环右移一位 × × × × 1 1
RLC A A带进位循环左移一位 × × 1 1
RRC A A带进位循环右移一位 × × 1 1
  • RLC可以做乘2运算;
  • 左移一位可以看作乘2,前提是第7位是0;
  • 右移一位可以看作除2,前提是第0位是0;

例无符号8位二进制数(A) = 1011 1101B = BDH, CY = 0

  • RL A:将A的第7位送入第0位,其余位提升一位,结果为:(A) = 0111 1011B

  • RR A:将A的第0位送入第7位,其余位降低一位,结果为:(A) = 1101 1110B

  • RLC A:将A的第7位送入CY中,将CY的内容送入第0位,结果为(CY) = 1,(A) = 0111 1010B,表示17AH,正好是BDH两倍;

  • RRC A:将A的第0位送入CY中,将CY的内容送入第7位,结果为(CY) = 1,(A) = 0101 1110B,A中表示57H。


三、逻辑“与”指令 ANL

ANL英文全称:ANL Logic


ANL A, XXX

目的:将累加器A中的内容和操作数所指向的内容按位进行逻辑“与”操作,结果存放在A中
源操作数:寄存器Rn、直接地址direct、间接寄存器@Ri、立即数#data

助记符 功能 对标志位影响 字节数 周期数
P OV AC CY
ANL A, Rn (A) ∧ (Rn) -> A × × × 1 1
ANL A, @Ri (A) ∧ ((Ri)) -> A; i = 0, 1 × × × 1 1
ANL A, direct (A) ∧ (direct) -> A × × × 2 1
ANL A, #data (A) ∧ data -> A × × × 2 1
  • ANL能将某些位清零,对于想清零的位与0进行“与”逻辑,对于想保持原来的位与1进行“与”逻辑;

例 (A) = 1111 1100B = FCH,(10) = 2FH,(2FH) = 2DH,(R0) = 10H

  • ANL A, R0:结果为(A) = 0001 0000B;
  • ANL A, @R0:结果为(A) = 0010 1100B;
  • ANL A, 10H:结果为(A) = 0010 1100B;
  • ANL A, #10H:结果为(A) = 0001 0000B。

ANL direct, XXX

目的:将直接地址单元的内容和源操作数的内容按位进行逻辑“与”操作,结果存放在直接地址中
源操作数:累加器A、立即数#data

助记符 功能 对标志位影响 字节数 周期数
P OV AC CY
ANL direct, A (direct) ∧ (A) -> direct × × × × 2 1
ANL direct, #data (direct) ∧ data -> direct × × × × 3 2

四、逻辑“或”指令 ORL

ORL英文全称:OR Logic


ORL A, XXX

目的:将累加器A中的内容和操作数所指向的内容按位进行逻辑“或”操作,结果存放在A中
源操作数:寄存器Rn、直接地址direct、间接寄存器@Ri、立即数#data

助记符 功能 对标志位影响 字节数 周期数
P OV AC CY
ORL A, Rn (A) ∨ (Rn) -> A × × × 1 1
ORL A, @Ri (A) ∨ ((Ri)) -> A; i = 0, 1 × × × 1 1
ORL A, direct (A) ∨ (direct) -> A × × × 2 1
ORL A, #data (A) ∨ data -> A × × × 2 1
  • ORL能将某些位置一,对于想置一的位与1进行“或”逻辑,对于想保持原来的位与0进行“或”逻辑;

例 (A) = 1001 1100B = 9CH,(E1) = DFH,(DFH) = 2DH,(R0) = E1H

  • ORL A, R0:结果为(A) = 1111 1101B = FDH;
  • ORL A, @R0:结果为(A) = 1101 1111B = DFH;
  • ORL A, E1H:结果为(A) = 1101 1111B = DFH;
  • ORL A, #E1H:结果为(A) = 1111 1101B = FDH。

ORL direct, XXX

目的:将直接地址单元的内容和源操作数的内容按位进行逻辑“或”操作,结果存放在直接地址中
源操作数:累加器A、立即数#data

助记符 功能 对标志位影响 字节数 周期数
P OV AC CY
ORL direct, A (direct) ∨ (A) -> direct × × × × 2 1
ORL direct, #data (direct) ∨ data -> direct × × × × 3 2

五、逻辑“异或”指令 XRL

XRL英文全称:Exclusive-OR Logic


XRL A, XXX

目的:将累加器A中的内容和操作数所指向的内容按位进行逻辑“异或”操作,结果存放在A中
源操作数:寄存器Rn、直接地址direct、间接寄存器@Ri、立即数#data

助记符 功能 对标志位影响 字节数 周期数
P OV AC CY
XRL A, Rn (A) ⊕ (Rn) -> A × × × 1 1
XRL A, @Ri (A) ⊕ ((Ri)) -> A; i = 0, 1 × × × 1 1
XRL A, direct (A) ⊕ (direct) -> A × × × 2 1
XRL A, #data (A) ⊕ data -> A × × × 2 1
  • XRL能将某些位置取反;

XRL direct, XXX

目的:将直接地址单元的内容和源操作数的内容按位进行逻辑“或”操作,结果存放在直接地址中
源操作数:累加器A、立即数#data

助记符 功能 对标志位影响 字节数 周期数
P OV AC CY
XRL direct, A (direct) ⊕ (A) -> direct × × × × 2 1
XRL direct, #data (direct) ⊕ data -> direct × × × × 3 2

51单片机之系统指令

51单片机之数据转移指令MOV、MOVX、MOVC等

51单片机之位操作指令SETB、CPL等

51单片机之控制转移指令SJMP、LJMP等

51单片机之算术运算指令ADDC、SUBB等


由本人水平有限,文章难免有错误,望告知

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159329.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(2)


相关推荐

  • 静态代码检查

    静态代码检查申请Let'sEncrypt永久免费SSL证书https://www.cnblogs.com/sage-blog/p/10302934.htmlIntellijIDEA使用check

  • python能用来做什么?这3大主要用途你一定要知道!(实用)

    python能用来做什么?这3大主要用途你一定要知道!(实用)导读:如果你想学Python,或者你刚开始学习Python,那么你可能会问:“我能用Python做什么?”导读:如果你想学Python,或者你刚开始学习Python,那么你可能会问:“我能用Pyth

  • @RequestMapping和@GetMapping @PostMapping 区别

        最近学习看一些代码,发现对于发送请求这件事,有的地方用@RequestMapping,有的地方用@PostMapping,为了搞清楚区别,特意查了下spring源代码,现在特此记录下。 @GetMapping用于将HTTPget请求映射到特定处理程序的方法注解具体来说,@GetMapping是一个组合注解,是@RequestMapping(method=RequestM…

  • 怎么从安卓设备转移数据到苹果_安卓换苹果如何转移数据?

    怎么从安卓设备转移数据到苹果_安卓换苹果如何转移数据?展开全部可以用网盘工具来操作下。比方说用百度网盘,找到里面的“手机备份32313133353236313431303231363533e58685e5aeb931333431373266”功能,然后将数据都备份好。后面再到苹果手机上,安装一个百度网盘,然后将数据再保存到手机上就行了。手机上的数据要是不小心删除了,那可以通过强力恢复精灵找回(iPhone专用)。二、苹果手机数据转移到新iPhone1…

  • 盘点|12款服务器监控工具「建议收藏」

    盘点|12款服务器监控工具「建议收藏」服务器监控工具功能相当强大,无论何时何地,我们都可以了解到服务器的功能以及性能。服务器监控工具的使用,可以让我们清楚的知道用户可以打开我们的网站,且确保网速不慢。只有这样做,才能留住宝贵的用户,以免因为系统停运的原因,导致用户丢失。基于此,我为大家收集了12款超实用的服务器监控工具。1、zabbixzabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。abbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问

  • 有限覆盖定理证明闭区间套定理_二维有限覆盖定理

    有限覆盖定理证明闭区间套定理_二维有限覆盖定理1.9上确界和下确界证明:03:00定理有上界的非空集合必有上确界有下界的非空集合必有下确界第二种方式16m-Sup(-E)=imfE或Sup(-E)=-imfE如果E没有上界,就说E趋于+无穷如果E没有下界,就说E趋于负无穷p.41(3)24m第十节,有限覆盖定理一族开区间32mHeime-Borel定理练习Bolzano-Weieristra…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号