文章目录

  • 前言
  • 一、位数据传送指令
    • MOV C, bit
    • MOV bit, C
  • 二、位修正指令
    • CLR X
    • SETB X
    • CPL X
  • 三、位逻辑运算指令
    • ANL C, X
    • ORL C, X

前言

  1. 位操作指令只能对片内RAM可位寻址的空间进行操作;
  2. 在片内RAM 字节地址 20H~2FH共计16字节128位,其对应 位地址00H~70H的128位空间地址;
  3. 此外特殊功能寄存器(SFR)中有11个可以位寻址共计88位(准确说需要再去除6位,共计82位);
  4. 对于判定SFR是否可以寻址,可利用其字节地址的十进制表达是8的倍数,或者字节地址的十六进制以0或8结尾的特性来判断其可以位寻址;
  5. 通过指令来判断源操作数与目的操作数是位地址还是字节地址;
  6. 位操作指令可以操作位地址或字节地址,但位地址只能通过位操作指令来操作,其他指令是控制1B(一个字节),不适合位地址,只有位操作指令是操作1b(一位);
  7. 51单片机是利用布尔处理机来处理位变量的指令集;
  8. 位操作指令的定义:处理对象为位变量的指令集,包括变量传送、逻辑运算、控制程序转移等指令。

例 设位地址10H(即字节地址22H的第一位)内容为0
MOV C 10H
SETB 20H
MOV 20H, #FFH

  • MOV C 10H和SETB 20H两个都是位操作,MOV 20H, #FFH不是位操作指令;
  • MOV C 10H:表示将(10H) = 0送入CY(进位标志位);
  • SETB 20H:表示将位地址20H(即字节地址24H的第一位)置1;
  • MOV 20H, #FFH:表示将字节地址20H设置为FFH,即位地址00H~07H共8b全设置为1,8个1。

一、位数据传送指令

MOV英文全称: Move


MOV C, bit

目的:将位地址bit的内容送入CY位中

MOV bit, C

目的:将位CY的内容送入位地址bit中

助记符 功能 对标志位影响 字节数 周期数
P OV AC CY
MOV C, bit (bit) -> C × × × 2 1
MOV bit, C (C) -> bit × × × × 2 2

例 设位地址10H的内容为0,C中的内容为1

  • MOV C, 10H:表示 位地址10H的内容送入C中,(10H) = 0 -> C,C清零;
  • MOV 10H, C:表示将C中内容送入位地址10H中,© = 1 -> 10H。

二、位修正指令

CLR英文全称:Clear
SETB英文全称:Set Bit
CPL英文全称:Complement


CLR X

目的:对位进行清零

SETB X

目的:对位进行置一

CPL X

目的:对位进行取反,原先是1就变为0,原先是0就变为1

助记符 功能 对标志位影响 字节数 周期数
P OV AC CY
CLR C 0 -> C × × × 1 1
CLR bit 0 -> bit × × × 2 1
SETB C 1 -> C × × × 1 1
SETB bit 1 -> bit × × × 2
CPL C /(C) -> C × × × 1 1
CPL bit /(bit) -> bit × × × 2 1

例 设位地址10H的内容为1,C中的内容为1

  • CLR C:表示将C清零;
  • CLR 10H:表示将位地址10H清零:
  • SETB C:表示将C置数(置一);
  • SETB 10H:表示将位地址10H置数;
  • CPL C:表示将C取反,/( C ) = 0 -> C;
  • CPL 10H:表示将位地址10H取反,/(10H) = 0 -> 10H
    SETB bit命令常用于开中断和启动定时器/计数器,如SETB ET0表示启动定时器/计数器T0

三、位逻辑运算指令

ANL英文全称:AND Logic
ORL英文全称:OR Logic


ANL C, X

目的:将累加器A中的内容与直接地址中的内容进行逻辑与运算

ORL C, X

目的:将累加器A中的内容与直接地址中的内容进行逻辑或运算

直接位地址中的数,在指令执行前后没有发送变化

助记符 功能 对标志位影响 字节数 周期数
P OV AC CY
ANL C, bit (C) ^ /(bit) -> C × × × 1 2
ANL C, /bit (C) ^ (bit) -> C × × × 2 2
ORL C, bit (C) V (bit) -> C × × × 1 2
ORL C, /bit (C) V /(bit) -> C × × × 2 2

例 设位地址10H的内容为0,C中的内容为1

  • ANL C, 10H:表示位将C中的内容与10H中的内容进行与逻辑操作,最后将结果1存放在C中;
  • ANL C, /10H:表示位将C中的内容与10H中的内容取反后进行与逻辑操作,最后将结果0存放在C中;

例 设位地址10H的内容为0,C中的内容为0

  • ORL C, 10H:表示位将C中的内容与10H中的内容进行或逻辑操作,最后将结果存0放在C中;
  • ORL C, /10H:表示位将C中的内容与10H中的内容取反后进行或逻辑操作,最后将结果存1放在C中;

51单片机之系统指令

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

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

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

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


注 :将位条件转移指令放入条件转移指令中;

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

51单片机之位操作指令SETB、CPL等相关推荐

  1. 传统 51 与STC-Y5内核 51 单片机对比汇编指令

    传统 51 与STC-Y5内核 51 单片机对比&汇编指令 算术类指令 24 汇编助记符 功能说明 字节数 传统8051单片机所需时钟 STC 8051单片机所需时钟 ADD A,Rn 寄存器 ...

  2. 单片机c语言reti的用法,基于51单片机中断跳出指令“RETI”浅议

    原标题:基于51单片机中断跳出指令"RETI"浅议 =RET指令+通知CPU中断服务已结束. 最近在基于编程的过程中出现了个很奇怪的问题"程序执行中在寄存器EA=1,ET ...

  3. 51单片机系列——基础指令

    这学期开始学习51单片机,感觉比汇编简单,关键是51的汇编有一个好的ide,练习起来也比较方便,这个系列主要记录51的学习经验.下面是基础指令的练习: org 0000h     ljmp main ...

  4. 单片机c语言reti的用法,谈谈51单片机的RETI指令

    最近在基于51单片机编程的过程中出现了个很奇怪的问题"程序执行中在寄存器EA=1,ET0=1,TR0=1条件下,单TF0=1时并没有执行中断". 在有过单片机中断编程经历者都知道当 ...

  5. 单片机c语言有没有跳转指令,51单片机跳转指令

    @ 无条件转移bai指令(共4条) LJMP addr16 : PC〈-du- addr16 AJMP addr11 : PC〈-- PC+2 , PC10-0〈-- addr11 SJMP rel ...

  6. jnz和djnz_51单片机之系统指令

    文章目录 前言 数据传送指令 MOV MOVC MOVX XCH XCHD PUSH POP 运算符指令 ADD ADDC SUBB MUL DIV DA INC DEC 逻辑运算指令 ANL ORL ...

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

    文章目录 前言 一.加法指令 ADD ADD A, XXX 二.带进位加法指令 ADDC ADDC A, XXX 三.带借位减法指令 SUBB SUBB A, XXX 四.乘除法指令 MUL AB D ...

  8. 51单片机汇编指令记忆方法

    虽然现在51单片机一般是用的C语言编程,但是记得当时大学教材还是教的汇编. 本文总结下51单片机的汇编指令,权当是参考,感兴趣的可以了解一下. 学习单片机,除了搞清单片机内部功能.存储空间分配及I/O ...

  9. 51单片机开发系列一-51单片机开发环境搭建以及入门汇编代码

    51单片机开发系列一 51单片机开发环境搭建以及入门汇编代码 象棋小子    1048272975 1. 51单片机概述 51单片机是对所有兼容Intel 8031指令系统的单片机的统称.目前教科书基 ...

最新文章

  1. 一款基jquery超炫的动画导航菜单
  2. 怎样才能提高搜索引擎对网站的信任度?
  3. 用到的oracle sql语句-001
  4. Reference和ReferenceQueue
  5. Java记录 -6- 流程控制语句
  6. 6-23 分离链接法的删除操作函数 (20 分)
  7. axios (get post请求、头部参数添加)傻瓜式入门axios
  8. 分离整数的各个数(信息学奥赛一本通-T1088)
  9. 30号晚直播丨数据操作加速器,CloudQuery v1.3.5 发布!
  10. 超越Mask-RCNN:谷歌大脑的AI,自己写了个目标检测AI
  11. 解决办法:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
  12. visio双线方框怎么画_visio透明框怎么画? visio绘制方框透明的教程
  13. 全网最全-固定资本存量分省、市、地区、产业-含计算过程
  14. ANSYS ICEM CFD 网格划分步骤简要总结
  15. Android影院选座
  16. 电脑ps计算机磨皮,ps脸部磨皮教程
  17. Jsoncpp 使用说明
  18. java equal_Java equal() 和 == 详细分析
  19. iOS应用性能调优的建议和技巧--中高级--王朋
  20. Windows脚本 同网段ip检测与持续ping包测试

热门文章

  1. MySQL数据备份、恢复
  2. iOS高性能Model转换框架----YYModel学习
  3. CNN对句子分类(tensorflow)
  4. math.h中常用的函数(C语言)
  5. librtmp的简单安装使用
  6. C语言通过QR分解计算矩阵的特征值和特征向量
  7. cmd窗口最小化运行
  8. 使用模块化扩展iOS应用
  9. Instruments 调试
  10. 基于stm32的视觉和蓝牙控制F407芯片智能机械臂控制小车