ANL、ORL、XRL、RL、RLC、RR、RRC、CPL、CLR

3.4.1 逻辑“与”运算指令ANL

notion image
ANL指令用于执行逻辑"与"运算。它可以对累加器A与直接数据、内部RAM或外部RAM进行按位与运算,结果存回累加器A。也可以对位地址与进位位C进行与运算
ANL指令的主要格式:
示例程序:
对字节进行与操作,不影响标志位(除了P);
对标志位C进行逻辑运算时,运算结果会直接存回标志位C中

3.4.2 逻辑“或”运算指令ORL

ORL指令用于执行逻辑"或"运算。它可以对累加器A与直接数据、内部RAM或外部RAM进行按位或运算,也可以对位地址与进位位C进行或运算
ORL指令的主要格式:
  1. ORL A, <src>:将累加器A与源操作数进行或运算,结果存回A
      • 例如:ORL A, R0ORL A, #dataORL A, @Ri
  1. ORL <dst>, A:将目标操作数与累加器A进行或运算,结果存回目标位置
      • 例如:ORL P1, AORL 30H, A
  1. ORL <dst>, #data:将目标操作数与立即数进行或运算,结果存回目标位置
      • 例如:ORL P1, #55HORL 30H, #55H
示例程序:
指令执行过程中会影响PSW中的进位标志位C(仅位操作时)。

3.4.3 逻辑“异或”运算指令XRL

XRL指令用于执行逻辑"异或"运算。它可以对累加器A与直接数据、内部RAM或外部RAM进行按位异或运算,结果存回累加器A
XRL指令的主要格式:
示例程序:

3.4.4 累加器移位/循环指令

包括带进位C和不带进位C的循环左移和循环右移等4条指令

1. 循环右移指令RR

RR指令用于将累加器A的内容向右循环移位1位,最低位移入最高位。指令格式:
示例说明:
指令执行过程中不影响任何标志位

2. 带进位的循环右移指令RRC

RRC指令用于将累加器A的内容和进位标志C一起向右循环移位1位进位C移入最高位,最低位移入进位C。(此时相当于C成为了最低位)指令格式:
示例说明:
指令执行过程中会影响PSW中的进位标志位C

3. 循环左移指令RL

RL指令用于将累加器A的内容向左循环移位1位,最高位移入最低位。指令格式:
示例说明:
指令执行过程中不影响任何标志位

4. 带进位的循环左移指令RLC

RLC指令用于将累加器A的内容和进位标志C一起向左循环移位1位进位C移入最低位,最高位移入进位C。(此时相当于C成为了最高位)指令格式:
示例说明:
指令执行过程中会影响PSW中的进位标志位C
notion image

3.4.5 累加器按位取反指令CPL

CPL指令用于将累加器A或位变量的内容按位取反。对累加器A进行操作时,将累加器A中的每一位取反。对位变量操作时,将指定位变量的值取反
CPL指令的主要格式:
示例程序:
指令执行过程中仅在位操作时会影响PSW中的进位标志位C

3.4.6 累加器清零指令CLR

CLR指令用于将累加器A或位变量的内容清零。对累加器A进行操作时,将累加器A中的所有位都置为0。对位变量操作时,将指定位变量的值置为0
CLR指令的主要格式:
示例程序:
指令执行过程中仅在位操作时会影响PSW中的进位标志位C
Loading...
Z_cosy
Z_cosy
浙江大学电气工程学院本科生
公告
🎉Welcome to Z-cosy🎉
-- 食用指南 ---
目前只有课程笔记以及电控学习笔记
陆续会整理更多内容!