51單片機匯編語言指令集
指
助 | 說明 | 字節(jié) | 周期 | 代 |
1.數(shù)據(jù)傳送指令(30條) | ||||
MOV A,Rn | 寄存器送 | 1 | 1 | E8--EF |
MOV A,data | 直接字節(jié)送A | 2 | 1 | E5 |
MOV A,@Ri | 間接RAM | 1 | 1 | E6--E7 |
MOV A,#data | 立接數(shù)送 | 2 | 1 | 74 |
MOV Rn,A | A | 1 | 1 | F8--FF |
MOV Rn,data | 直接數(shù)送寄存器 | 2 | 2 | A8--AF |
MOV Rn,#data | 立即數(shù)送寄存器 | 2 | 1 | 78--7F |
MOV data,A | A | 2 | 1 | F5 |
MOV data,Rn | 寄存器送直接字節(jié) | 2 | 1 | 88—8F |
MOV data,data | 直接字節(jié)送直接字節(jié) | 3 | 2 | 85 |
MOV data,@Ri | 間接 | 2 | 2 | 86;87 |
MOV data,#data | 立即數(shù)送直接字節(jié) | 3 | 2 | 75 |
MOV @Ri,A | A | 1 | 2 | F6;F7 |
MOV @Ri,data | 直接字節(jié)送間接Rn | 1 | 1 | A6;A7 |
MOV @Ri,#data | 立即數(shù)送間接 | 2 | 2 | 76;77 |
MOV DPTR,#data16 | 16 | 3 | 1 | 90 |
MOV C,bit | 直接位送進位位 | 2 | 1 | A2 |
MOV bit,C | 進位位送直接位 | 2 | 2 | 92 |
MOVC A,@A+DPTR | A+DPTR | 3 | 2 | 93 |
MOVC A,@A+PC | A+PC | 1 | 2 | 83 |
MOVX A,@Ri | 外部數(shù)據(jù)送A(8 | 1 | 2 | E2;E3 |
MOVX A,@DPTR | 外部數(shù)據(jù)送A(16 | 1 | 2 | E0 |
MOVX @Ri,A | A | 1 | 2 | F2;F3 |
MOVX @DPTR,A | A | 1 | 2 | F0 |
PUSH data | 直接字節(jié)進棧道,SP | 2 | 2 | C0 |
POP data | 直接字節(jié)出棧,SP | 2 | 2 | D0 |
XCH A,Rn | 寄存器與 | 1 | 1 | C8—CF |
XCH A,data | 直接字節(jié)與A | 2 | 1 | C5 |
XCH A,@Ri | 間接Rn | 1 | 1 | C6;C7 |
XCHD A,@Ri | 間接Rn | 1 | 1 | D6;D7 |
2.邏輯運算指令(35條) | ||||
ANL A,Rn | 寄存器與到A | 1 | 1 | 58—5F |
ANL A,data | 直接字節(jié)與到A | 2 | 1 | 55 |
ANL A,@Ri | 間接RAM與到A | 1 | 1 | 56;57 |
ANL A,#data | 立即數(shù)與到A | 2 | 1 | 54 |
ANL data,A | A與到直接字節(jié) | 2 | 1 | 52 |
ANL data,#data | 立即數(shù)與到直接字節(jié) | 3 | 2 | 53 |
ANL C,bit | 直接位與到進位位 | 2 | 2 | 82 |
ANL C,/bit | 直接位的反碼與到進位位 | 2 | 2 | B0 |
ORL A,Rn | 寄存器或到A | 1 | 1 | 48—4F |
ORL A,data | 直接字節(jié)或到A | 2 | 1 | 45 |
ORL A,@Ri | 間接RAM或到A | 1 | 1 | 46;47 |
ORL A,#data | 立即數(shù)或到A | 2 | 1 | 44 |
ORL data,A | A或到直接字節(jié) | 2 | 1 | 42 |
ORL data,#data | 立即數(shù)或到直接字節(jié) | 3 | 2 | 43 |
ORL C,bit | 直接位或到進位位 | 2 | 2 | 72 |
ORL C,/bit | 直接位的反碼或到進位位 | 2 | 2 | A0 |
XRL A,Rn | 寄存器異或到A | 1 | 1 | 68—6F |
XRL A,data | 直接字節(jié)異或到A | 2 | 1 | 65 |
XRL A,@Ri | 間接RAM異或到A | 1 | 1 | 66;67 |
XRL A,#data | 立即數(shù)異或到A | 2 | 1 | 64 |
XRL data,A | A異或到直接字節(jié) | 2 | 1 | 62 |
XRL data,#data | 立即數(shù)異或到直接字節(jié) | 3 | 2 | 63 |
SETB C | 進位位置 | 1 | 1 | D3 |
SETB bit | 直接位置 | 2 | 1 | D2 |
CLR A | A清0 | 1 | 1 | E4 |
CLR C | 進位位清 | 1 | 1 | C3 |
CLR bit | 直接位清 | 2 | 1 | C2 |
CPL A | A求反碼 | 1 | 1 | F4 |
CPL C | 進位位取反 | 1 | 1 | B3 |
CPL bit | 直接位取反 | 2 | 1 | B2 |
RL A | A循環(huán)左移一位 | 1 | 1 | 23 |
RLC A | A | 1 | 1 | 33 |
RR A | A右移一位 | 1 | 1 | 03 |
RRC A | A | 1 | 1 | 13 |
SWAP A | A | 1 | 1 | C4 |
3.算術運算指令(24條) | ||||
ADD A,Rn | 寄存器加到A | 1 | 1 | 28—2F |
ADD A,data | 直接字節(jié)加到A | 2 | 1 | 25 |
ADD A,@Ri | 間接RAM | 1 | 1 | 26;27 |
ADD A,#data | 立即數(shù)加到A | 2 | 1 | 24 |
ADDC A,Rn | 寄存器帶進位加到 | 1 | 1 | 38—3F |
ADDC A,data | 直接字節(jié)帶進位加到A | 2 | 1 | 35 |
ADDC A,@Ri | 間接RAM | 1 | 1 | 36;37 |
ADDC A,#data | 立即數(shù)帶進位加到 | 2 | 1 | 34 |
SUBB A,Rn | 從A | 1 | 1 | 98—9F |
SUBB A,data | 從A | 2 | 1 | 95 |
SUBB A,@Ri | 從A | 1 | 1 | 96;97 |
SUBB A,#data | 從A | 2 | 1 | 94 |
INC A | A加1 | 1 | 1 | 04 |
INC Rn | 寄存器加 | 1 | 1 | 08—0F |
INC data | 直接字節(jié)加1 | 2 | 1 | 05 |
INC @Ri | 間接RAM | 1 | 1 | 06;07 |
INC DPTR | 數(shù)據(jù)指針加1 | 1 | 2 | A3 |
DEC A | A減1 | 1 | 1 | 14 |
DEC Rn | 寄存器減 | 1 | 1 | 18—1F |
DEC data | 直接字節(jié)減1 | 2 | 1 | 15 |
DEC @Ri | 間接RAM | 1 | 1 | 16;17 |
MUL AB | A乘B | 1 | 4 | A4 |
DIV AB | A被B除 | 1 | 4 | 84 |
DA A | A十進制調整 | 1 | 1 | D4 |
4.轉移指令(22條) | ||||
AJMP addr 11 | 絕對轉移 | 2 | 2 | *1 |
LJMP addr 16 | 長轉移 | 3 | 2 | 02 |
SJMP rel | 短轉移 | 2 | 2 | 80 |
JMP @A+DPTR | 相對于DPTR | 1 | 2 | 73 |
JZ rel | 若A=0 | 2 | 2 | 60 |
JNZ rel | 若A≠0 | 2 | 2 | 70 |
JC rel | 若C=1 | 2 | 2 | 40 |
JNC rel | 若C≠1 | 2 | 2 | 50 |
JB bit,rel | 若直接位=1 | 3 | 2 | 20 |
JNB bit,rel | 若直接位=0 | 3 | 2 | 30 |
JBC bit,rel | 若直接位=1 | 3 | 2 | 10 |
CJNE A,data,rel | 直接數(shù)與 | 3 | 2 | B5 |
CJNE A,#data,rel | 立即數(shù)與 | 3 | 2 | B4 |
CJNE @Ri,#data,rel | 立即數(shù)與間接RAM比較,不等轉移 | 3 | 2 | B6;B7 |
CJNE Rn,#data,rel | 立即數(shù)與寄存器比較不等轉移 | 3 | 2 | B8—BF |
DJNZ Rn,rel | 寄存器減 | 2 | 2 | D8—DF |
DJNZ data,rel | 直接字節(jié)減1 | 3 | 2 | D5 |
ACALL addr 11 | 絕對子程序調用 | 2 | 2 | *1 |
LCALL addr 16 | 子程序調用 | 3 | 2 | 12 |
RET | 子程序調用返回 | 1 | 2 | 22 |
RETI | 中斷程序調用返回 | 1 | 2 | 32 |
NOP | 空操作 | 1 | 1 | 00 |
評論