1. 程式人生 > > 8051指令集

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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!