8051指令集

转自:https://blog.csdn.net/leehyfer/article/details/5040360

8051指令集
算术运算指令
指令    说明    周期
ADD A,Rn    A←A+Rn    12
ADD A,direct    A←A+direct    12
ADD A,@Ri    A←A+Ri    12
ADD A,#data    A←A+data    12
ADDC A,Rn    A←A+Rn+C    12
ADDC A,direct    A←A+direct+C    12
ADDC A,@Ri    A←A+Ri+C    12
ADDC A,#data    A←A+data+C    12
SUBB A,Rn    A←A-Rn-C    12
SUBB A,direct    A←A-direct-C    12
SUBB A,@Ri    A←A-Ri-C    12
SUBB A,#data    A←A-data-C    12
INC A    A←A+1    12
INC Rn    Rn←Rn+1    12
INC direct    direct←direct+1    12
INC @Ri    @Ri←@Ri+1    12
INC DPTR    DPTR←DPTR+1    12
DEC A    A←A-1    12
DEC Rn    Rn←Rn-1    12
DEC direct    direct←direct-1    12
DEC @Ri    @Ri←@Ri-1    12
MUL AB    两个无符号的8位数据相乘,其中高阶8位放入B缓存器,低阶8位则放入累积器ACC    24
DIV AB    两个无符号的8位数据相除,把ACC值除以B缓存器值,商数放回ACC,余数放在B    48
DA A    累加器作十进制调整    48
           
           
逻辑运算指令
指令    说明    周期
ANL A,Rn    A←A and Rn    12
ANL A,direct    A←A and direct    12
ANL A,@Ri    A←A and Ri    12
ANL A,#data    A←A and data    12
ANL direct,A    direct←direct and A    12
ANL direct,#data    direct←direct and data    24
ORL A,Rn    A←A or Rn    12
ORL A,direct    A←A or direct    12
ORL A,Rn    A←A or Rn    12
ORL A,@Ri    A←A or Ri    12
ORL A,#data    A←A or data    12
ORL direct,A    direct←direct or A    12
ORL direct,#data    direct←direct or data    24
XRL A,Rn    A←A xor Rn    12
XRL A,direct    A←A xor direct    12
XRL A,@Ri    A←A xor Ri    12
XRL A,#data    A←A xor data    12
XRL direct,A    direct←direct xor A    12
XRL direct,#data    direct←direct xor data    12
CLR A    清除累加器    12
CPL A    累加器反相    12
RL A    累加器向左旋转    12
RLC A    累加器和C左旋    12
RR A    累加器向右旋转    12
RRC A    累加器和C右旋    12
SWAP A    累加器的高低四位互换    12
           
           
数据转移指令
指令    说明    周期
MOV A,Rn    A←Rn    12
MOV A,direct    A←direct    12
MOV A,@Ri    A←Ri    12
MOV A,#data    A←data    12
MOV Rn,A    Rn←A    12
MOV Rn,direct    Rn←direct    24
MOV Rn,#data    Rn←data    12
MOV direct,A    direct←A    12
MOV direct,Rn    direct←Rn    24
MOV direct,direct    direct←direct    24
MOV direct,@Ri    direct←Ri    24
MOV direct,#data    direct←data    24
MOV @Ri,A    Ri←A    12
MOV @Ri,direct    Ri←direct    24
MOV @Ri,#data    Ri←data    12
MOV DPTR,#data 16    Ri←16bit data    24
MOVC A,@A+DPTR    A←程序内存的数据    24
MOVC A,@A+PC    A←程序内存的数据    24
MOVX A,@Ri    A←外部RAM的数据(8bit地址)    24
MOVX A,@DPTR    A←外部RAM的数据(16bit地址)    24
MOVX @Ri,A    外部的RAM(8bit)←A    24
MOVX @DPTR,A    外部的RAM(16bit)←A    24
PUSH direc    推迭区←direct    24
POP direc    direct←堆栈区    24
XCH A,Rn    A和Rn互换    12
XCH A,direct    A和direct互换    12
XCH A,@Ri    A和Ri互换    12
XCHD A,@Ri    A和Ri的低四位互换    12
           
           
位运算指令
指令    说明    周期
CLR C    清除进位旗标    12
CLR bit    清除直接位    12
SETB C    设定进位旗标    12
SETB bit    设定直接位    12
CPL C    进位旗标反相    12
CPL bit    直接位反相    12
ANL C,bit    C←C and bit    24
ANL C,/bit    C←C and bit(反相)    24
ORL C,bit    C←C or bit    24
ORL C,/bit    C←C or bit(反相)    24
MOV C,bit    C←bit    12
MOV bit,C    bit←C    24
JC rel    若C=1跳至rel    24
JNC rel    若C=0跳至rel    24
JB bit,rel    若bit=1跳至rel    24
JNB bit,rel    若bit=0跳至rel    24
JBC bit,rel    若bit=1跳至rel,且清除此位    24
           
           
程序跳跃指令
指令    说明    周期
ACALL addr11    绝对式子程序呼叫    24
LCALL addr16    远程子程序呼叫    24
RET    从子程序返回    24
RETI    从中断子程序返回    24
AJMP addr11    绝对式跳跃    24
LJMP addr16    远程跳跃    24
SJMP rel    短程跳跃    24
JMP @A+DPTR    间接跳跃    24
JZ rel    若A=0跳至rel    24
JNZ rel    若A不等于0跳至rel    24
CJNE A,direct,rel    若A不等于direct跳至rel    24
CJNE A,#data,rel    若A不等于data跳至rel    24
CJNE Rn,#data,rel    若Rn不等于data跳至rel    24
CJNE @Ri,#data,rel    若Ri不等于data跳至rel    24
DJNZ Rn,rel    Rn减1不等于0跳至rel    24
DJNZ direct,rel    direct减1不等于0跳至rel    24
NOP    没动作    12
           
           
缩写符号说明
缩写符号    说明    备注
Rn    缓存器R0-R7     
direct    8bit内部数据存储器,包括     
1.内部数据存储器(00-7F)的地址
2.特殊功能缓存器(80-FF)的地址,如P0,PSW,TMOD..等
@Ri    由缓存器R0或R1所寻址的内部RAM数据     
#data    8bit常数     
#data 16    16bit常数     
addr 16    16bit的目的地址,可使跳跃指令跳跃64k     
addr 11    11bit的目的地址,可使跳跃指令跳跃2k     
rel    具正负号的8位地址偏移量,用于相对地址的跳跃     
bit    1个bit:只所有可以位寻址的位。(如PSW.7为CY旗号)     
A    累加器(累积器)     
C或CY    进位旗号     
AC    辅助进位旗号     
Bb    指定位B0-B7     
D    半字节(4Bit)助忆符号     
F0    旗号0     
I    中断     
PC    程序计数器     
P0    I/O port 0     
P1    I/O port 1     
P2    I/O port 2     
P3    I/O port 3     
PSW    程序状态字组(类似于旗号缓存器)     
SP    堆栈指针缓存器     
B    缓存器B     
DPTR    数据指针缓存器     
X    外部滋要内存的助忆符号     
@    间接地址符号     
$    程序计数迄目前的值     
reg    缓存器     
--------------------- 
作者:leehyfer 
来源:CSDN 
原文:https://blog.csdn.net/leehyfer/article/details/5040360 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/hemeinvyiqiluoben/article/details/84866503