Abstract: 用来记录MCS-51的指令的文章,全文纯手打的,以后可能会更新(改错)
目录:
数据传送指令
助记符 |
功能说明 |
字节数 |
振荡器周期 |
MOV Rn, A |
累加器内容传送到工作寄存器 |
1 |
12 |
MOV Rn,direct |
直接寻址字节传送到工作寄存器 |
2 |
24 |
MOV Rn, #data |
立即数传送到工作寄存器 |
2 |
12 |
MOV direct, A |
累加器内容传送到直接寻址字节 |
2 |
12 |
MOV direct, Rn |
工作寄存器内容传送到直接寻址字节 |
2 |
24 |
MOV direct, direct |
直接寻址字节传送到直接寻址字节 |
3 |
24 |
MOV direct, @Ri |
间接RAM传送到直接寻址字节 |
2 |
24 |
MOV direct, #data |
立即数传送到直接寻址字节 |
3 |
24 |
MOV @Ri, A |
累加器内容传送到间接寻址RAM |
1 |
12 |
MOV @Ri, direct |
直接寻址字节传送到直接寻址RAM |
2 |
24 |
MOV @Ri, #data |
立即数传送到间接寻址RAM |
2 |
12 |
MOV DPTR, #data16 |
16位立即数传送到地址寄存器 |
3 |
24 |
MOVX A, @Ri |
外部RAM(8位地址)传送到累加器 |
1 |
24 |
MOVX A, @DPTR |
外部RAM(16位地址)传送到累加器 |
1 |
24 |
MOVX @Ri, A |
累加器传送到外部RAM(8位地址) |
1 |
24 |
MOVX @DPTR, A |
累加器传送到外部RAM(16位地址) |
1 |
24 |
MOVC A, @A+DPTR |
程序储存器字节传送到累加器 |
1 |
24 |
MOVC A, @A+PC |
程序存储器字节传送到累加器 |
1 |
24 |
SWAP A |
累加器内半字节交换 |
1 |
12 |
XCHD A, @Ri |
间接寻址RAM和累加器低半字节交换 |
1 |
12 |
XCH A, Rn |
寄存器和累加器交换 |
1 |
12 |
XCH A, direct |
直接寻址字节和累加器交换 |
2 |
12 |
XCH A, @Ri |
间接寻址RAM和累加器交换 |
1 |
12 |
PUSH direct |
直接寻址字节压入栈顶 |
2 |
24 |
POP direct |
栈顶弹到直接寻址字节 |
2 |
24 |
算数运算类指令
助记符 |
功能说明 |
字节数 |
振荡器周期 |
ADD A, Rn |
寄存器内容加到累加器 |
1 |
12 |
ADD A, direct |
直接寻址字节内容传送到累加器 |
2 |
12 |
ADD A, @Ri |
直接寻址RAM内容加到累加器 |
1 |
12 |
ADD A, #data |
立即数加到累加器 |
2 |
12 |
ADDC A, Rn |
寄存器加到累加器(带进位) |
1 |
12 |
ADDC A, direct |
直接寻址字节加到累加器(带进位) |
2 |
12 |
ADDC A, @Ri |
间接寻址RAM加到累加器(带进位) |
1 |
12 |
ADDC A, #data |
立即数加到累加器(带进位) |
2 |
12 |
SUBB A, Rn |
累加器内容减去寄存器内容(带借位) |
1 |
12 |
SUBB A, direct |
累加器内容减去直接寻址字节(带借位) |
2 |
12 |
SUBB A, @Ri |
累加器内容减去间接寻址RAM(带借位) |
1 |
12 |
SUBB A, #data |
累加器减去立即数(带借位) |
2 |
12 |
DA A |
累加器十进制调整 |
1 |
12 |
INC A |
累加器加一 |
2 |
12 |
INC Rn |
寄存器加一 |
1 |
12 |
INC direct |
直接寻址字节加一 |
2 |
12 |
INC @Ri |
间接寻址RAM加一 |
1 |
12 |
INC DPTR |
数据指针寄存器加一 |
1 |
12 |
DEC A |
累加器减一 |
1 |
12 |
DEC Rn |
寄存器加一 |
1 |
12 |
DEC direct |
直接寻址地址字节减一 |
2 |
12 |
DEC @Ri |
间接寻址RAM减一 |
1 |
12 |
MUL AB |
累加器A和寄存器B相乘 |
1 |
12 |
DIV AB |
累加器A除以寄存器B |
1 |
12 |
逻辑运算类指令
助记符 |
功能说明 |
字节数 |
振荡器周期 |
ANL A, Rn |
寄存器“与”到累加器 |
1 |
12 |
ANL A, direct |
直接寻址字节“与”到累加器 |
2 |
12 |
ANL A, @Ri |
间接寻址RAM“与“到累加器 |
1 |
12 |
ANL A, #data |
立即数”与“到累加器 |
2 |
12 |
ANL direct, A |
累加器”与“到直接寻址字节 |
2 |
12 |
ANL direct, #data |
立即数”与“到直接寻址字节 |
3 |
12 |
ORL A, @Rn |
寄存器”与“到累加器 |
1 |
12 |
ORL A, #direct |
直接寻址字节”或“到累加器 |
2 |
12 |
ORL A, Ri |
间接地址RAM”与“到累加器 |
1 |
12 |
ORL A, #data |
立即数”与“到累加器 |
2 |
12 |
ORL direct, A |
累加器“与”到直接寻址字节 |
2 |
12 |
ORL direct, #data |
立即数“与”到直接寻址字节 |
3 |
12 |
XRL A,Rn |
寄存器“异或”到累加器 |
1 |
12 |
XRL A, direct |
直接寻址字节“异或”到累加器 |
2 |
12 |
XRL A, @Ri |
直接寻址RAM“异或”到累加器 |
1 |
12 |
XRL A, #data |
立即数“异或”到累加器 |
2 |
12 |
XRL direct, A |
累加器“异或”到直接寻址字节 |
2 |
12 |
XRL direct, #data |
立即数“异或”到直接寻址字节 |
3 |
12 |
RL A |
累加器循环左移 |
1 |
12 |
RLC A |
经过进位位的累加器循环左移 |
1 |
12 |
RR A |
累加器循环右移 |
1 |
12 |
RRC A |
经过进位位的累加器循环右移 |
1 |
12 |
CLR A |
累加器清零 |
1 |
12 |
CPL A |
累加器求反 |
1 |
12 |
控制转移类指令
助记符 |
功能说明 |
字节数 |
振荡器周期 |
LJMP addr16 |
长转移 |
3 |
24 |
AJMP addr11 |
绝对转移 |
2 |
24 |
SJMP rel |
短转移(相对偏移) |
2 |
24 |
JMP @A+DPTR |
相对DPTR的间接转移 |
1 |
24 |
JZ rel |
累加器为零则转移 |
2 |
24 |
JNZ rel |
累加器为非零则转移 |
2 |
24 |
CJNE A, direct, rel |
比较直接寻址字节和A不相等则转移 |
3 |
24 |
CJNE A, #data, rel |
比较立即数和A不相等则转移 |
3 |
24 |
CJNE Rn, #data, rel |
比较立即数和寄存器不相等则转移 |
3 |
24 |
CJNZ @Ri, #data, rel |
比较立即数和间接寻址RAM不相等则转移 |
3 |
24 |
DJNZ Rn, rel |
寄存器减一不为零则转移 |
2 |
24 |
DJNZ direct, rel |
直接寻址字节减一不为零则转移 |
3 |
24 |
ACALL addr11 |
绝对调用子程序 |
2 |
24 |
LCALL addr16 |
长调用子程序 |
3 |
24 |
RET |
从子程序返回 |
1 |
24 |
RETI |
从中断返回 |
1 |
24 |
NOP |
空操作 |
1 |
12 |
布尔变量操作类指令
助记符 |
功能说明 |
字节数 |
振荡器周期 |
CLR C |
清进位位 |
1 |
12 |
CLR bit |
清直接地址位 |
2 |
12 |
SETB C |
置进位位 |
1 |
12 |
SETB bit |
置直接地址位 |
2 |
12 |
CPL C |
进位位求反 |
1 |
12 |
CPL bit |
直接地址位求反 |
2 |
12 |
ANL C, bit |
进位位和直接地址位相“与” |
2 |
24 |
ANL C, /bit |
进位位和直接地址位的反码相“与” |
2 |
24 |
ORL C, bit |
进位位和直接地址位相“或” |
2 |
24 |
ORL C, /bit |
进位位和直接地址位的反码相“或” |
2 |
24 |
MOV C, bit |
直接地址位送入进位位 |
2 |
12 |
MOV bit, C |
进位位送入直接地址位 |
2 |
24 |
JC rel |
进位位为一则转移 |
2 |
24 |
JNC rel |
进位位为零则转移 |
2 |
24 |
JB bit, rel |
直接地址位为一则转移 |
3 |
24 |
JNB bit, rel |
直接地址位为零则转移 |
3 |
24 |
JBC bit, rel |
直接地址位为一则转移,该位清零 |
3 |
24 |