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等


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

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

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

赞 (2)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • nodejs安装淘宝镜像(配置淘宝镜像)

    强烈推荐30个原生JavaScript的demo,包括canvas时钟特效、自定义视频播放器、搜索栏快速匹配、fetch访问资源、console调试技巧等,先fork后学习,详见点击打开链接,欢迎点赞~~~谢谢,共同进步学习!将npm的注册表源设置为国内的镜像1、国内用户,建议将npm的注册表源设置为国内的镜像,可以大幅提升安装速度2、国内优秀npm镜像推荐及使用:http://rin…

    2022年4月18日
  • MySQL数据库:主从复制Replication

    MySQL数据库:主从复制Replication

    2021年4月9日
  • exec与sp_executesql语法的区别详解[通俗易懂]

    exec与sp_executesql语法的区别详解[通俗易懂]动态语句语法:–方法1查询表改为动态select*fromsysobjectsexec(‘selectID,Namefromsysobjects’)execsp_executesqlN’selectID,Namefromsysobje

    2022年5月16日
  • 使用phpmaill发送邮件的例子

    使用phpmaill发送邮件的例子

    2021年9月20日
  • Laravel框架_php laravel框架

    Laravel框架_php laravel框架laravel框架一、laravel简介laravel是一套优雅简介的PHP开发框架,受欢迎程度非常之高,功能强大,工具齐全;https://www.jianshu.com/p/206592c78113二、简单介绍1、laravel是基于mvc模式的php框架,m——模型层,v——视图层,c——控制器层;以下为laravel框架的目录文件,框出来的文件目录将在后续中用到:2、什么是MV…

    2022年10月22日
  • 毕业设计——基于小程序云开发的校园二手交易平台(附源码)

    毕业设计——基于小程序云开发的校园二手交易平台(附源码)本系统基于微信小程序云开发,采用小程序原生框架,不需要后端开发,数据库和CMS云开发全帮你搞定,对后端开发能力薄弱的同学超友好的有木有,只要你学过HTML+CSS+JS就能实现所有功能。一、功能介绍使用该系统的角色有两个,分别是用户和管理员,用户通过微信小程序进入该系统,该角色功能主要由七个模块组成,分别是用户登录、搜索商品、发布商品、管理商品、购买商品、收藏商品、以及评论留言。管理员通过小程序自带的内容管理平台实现后台管理,可对商品信息、留言板以及用户等数据进行增、删、改、查操作。二、业务流程图

    2022年6月19日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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