逻辑操作指令包括与、或、异或、清除、求反、移位等操作,其操作数都是8位
CLR英文全称:Clear
CPL英文全称:Complement
SWAP英文全称:Swap
指令名称:累加器A清0指令
目的:将累加器A中的内容清零
指令名称:累加器A取反指令
目的:将累加器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
RL英文全称:Rotate Left
RR英文全称:Rotate Right
RLC英文全称:Rotate Left throught the Carry flag
RRC英文全称:Rotate Right throught the Carry flag
指令名称:累加器A循环左移指令
目的:累加器A的内容最高位变最低位,其他位都升一位
指令名称:累加器A循环右移指令
目的:累加器A的内容最低位变最高位,其他位都降一位
指令名称:累加器A连同进位位循环左移指令
目的:累加器A的内容最高位进入CY,CY位的内容进入最低位,其他位都升一位
指令名称:累加器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 |
例无符号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 Logic
目的:将累加器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 |
例 (A) = 1111 1100B = FCH,(10) = 2FH,(2FH) = 2DH,(R0) = 10H
目的:将直接地址单元的内容和源操作数的内容按位进行逻辑“与”操作,结果存放在直接地址中
源操作数:累加器A、立即数#data
助记符 | 功能 | 对标志位影响 | 字节数 | 周期数 | |||
---|---|---|---|---|---|---|---|
P | OV | AC | CY | ||||
ANL direct, A | (direct) ∧ (A) -> direct | × | × | × | × | 2 | 1 |
ANL direct, #data | (direct) ∧ data -> direct | × | × | × | × | 3 | 2 |
ORL英文全称:OR Logic
目的:将累加器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 |
例 (A) = 1001 1100B = 9CH,(E1) = DFH,(DFH) = 2DH,(R0) = E1H
目的:将直接地址单元的内容和源操作数的内容按位进行逻辑“或”操作,结果存放在直接地址中
源操作数:累加器A、立即数#data
助记符 | 功能 | 对标志位影响 | 字节数 | 周期数 | |||
---|---|---|---|---|---|---|---|
P | OV | AC | CY | ||||
ORL direct, A | (direct) ∨ (A) -> direct | × | × | × | × | 2 | 1 |
ORL direct, #data | (direct) ∨ data -> direct | × | × | × | × | 3 | 2 |
XRL英文全称:Exclusive-OR Logic
目的:将累加器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 |
目的:将直接地址单元的内容和源操作数的内容按位进行逻辑“或”操作,结果存放在直接地址中
源操作数:累加器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等
由本人水平有限,文章难免有错误,望告知