3.1 概述❗
3.2 数据传送类指令
3.3 算术运算类指令
3.4 逻辑运算类指令
3.5 控制程序转移类指令
3.6 布尔(位)操作指令
指令类型
指令
主要功能
影响标志位
示例代码
数据传送类
MOV
数据传送
MOV A,#25H
数据传送类
MOVC
程序存储器数据传送
MOVC A,@A+DPTR
数据传送类
MOVX
外部RAM数据传送
MOVX A,@DPTR
数据传送类
PUSH
入栈
PUSH ACC
数据传送类
POP
出栈
POP ACC
数据传送类
XCH
交换
XCH A,R0
数据传送类
XCHD
低半字节交换
XCHD A,@R0
数据传送类
SWAP
累加器高低半字节交换
SWAP A
算术运算类
ADD
加法
C,AC,OV
ADD A,#34H
算术运算类
ADDC
带进位加法
C,AC,OV
ADDC A,R0
算术运算类
SUBB
带借位减法
C,AC,OV
SUBB A,#56H
算术运算类
INC
加1
INC A
算术运算类
DEC
减1
DEC R0
算术运算类
MUL
乘法
C,OV
MUL AB
算术运算类
DIV
除法
C,OV
DIV AB
逻辑运算类
ANL
与运算
ANL A,#0FH
逻辑运算类
ORL
或运算
ORL A,R0
逻辑运算类
XRL
异或运算
XRL A,#55H
逻辑运算类
CLR
清零
根据位
CLR A
逻辑运算类
CPL
取反
根据位
CPL A
逻辑运算类
RL
循环左移
RL A
控制转移类
AJMP
绝对跳转
AJMP LABEL
控制转移类
LJMP
长跳转
LJMP LABEL
控制转移类
SJMP
短跳转
SJMP LABEL
控制转移类
JZ
为零跳转
JZ LABEL
控制转移类
JNZ
非零跳转
JNZ LABEL
控制转移类
CALL
调用子程序
LCALL SUB1
布尔操作类
SETB
置位
根据位
SETB C
布尔操作类
CLR
清位
根据位
CLR C
布尔操作类
JB
位为1跳转
JB P1.0,LABEL
布尔操作类
JNB
位为0跳转
JNB P1.0,LABEL

标志位

指令类别
具体指令
影响的标志位
说明与备注
数据传送
MOV, MOVX, MOVC, PUSH, POP, XCH, SWAP
基本不影响
不改变CY, AC, OV。若A为操作数,P标志位会根据A的新值变化。
程序控制
JMP, CALL, RET, NOP, DJNZ, JZ, JNC 等
不影响
它们本身不修改PSW,但条件跳转指令(如JNC)会“检查”标志位来决定是否跳转。
算术运算
INC, DEC
不影响
这是算术指令中的特例,为提高效率,硬件设计上不影响任何标志位。
逻辑与移位
ANL, ORL, XRL, RL, RR, CPL A, CLR A
P (若操作数是A)
CY, AC, OV不受影响。若结果在累加器A中,仅P标志位会根据新值更新。
指令类别
具体指令
影响的标志位
说明与备注
算术运算
ADD, ADDC, SUBB
CY, AC, OV, P
标准的加减法,会全面影响状态标志。在SUBB中,CY作为借位标志。
MUL AB, DIV AB
OV, P (CY总是清0)
复杂的数学运算。CY被固定清0,OV有特殊含义(乘积超范围或除数为0)。
DA A
CY, P
BCD码校正指令,其执行依赖于AC和CY,并可能最终置位CY。
逻辑与移位
RLC A, RRC A
CY, P
带进位循环移位,CY位参与了整个循环过程,其值会被改变。
布尔(位)操作
SETB C, CLR C, CPL C, MOV C, bit, ANL C, bit 等
CY
这一类指令就是为了直接操作进位标志位 CY 而设计的。
Loading...
Z_cosy
Z_cosy
浙江大学电气工程学院本科生
公告
🎉Welcome to Z-cosy🎉
-- 食用指南 ---
目前只有课程笔记以及电控学习笔记
陆续会整理更多内容!
目录
0%