指令格式(助記符)
| 指令功能說明
| 字節(jié)
| 周期
|
MOV A,direct
| (direct)→(A) 直接單元地址中的數(shù)據(jù)→累加器A
| 1
| 1
|
MOV A,#data
| #data→(A) 8位立即數(shù)→累加器A
| 2
| 1
|
MOV A,Rn
| (Rn )→(A) Rn寄存器中的數(shù)據(jù)→累加器A
| 1
| 1
|
MOV A,@Ri
| ((Ri))→(A) Ri中的數(shù)據(jù)指向的地址單元中的數(shù)據(jù) →累加器A
| 1
| 1
|
MOV Rn,direct
| (direct)→(Rn) 直接尋址單元中的數(shù)據(jù) —> 寄存器Rn
| 2
| 2
|
MOV Rn,#data
| #data→(Rn) 8位立即數(shù) —> 寄存器Rn
| 2
| 1
|
MOV Rn,A
| (A)→(Rn) 累加器A中的數(shù)據(jù) —> 寄存器Rn
| 1
| 1
|
MOV direct,direct
| (direct)→(direct) 直接地址單元中的數(shù)據(jù)→直接地址單元direct
| 3
| 2
|
MOV direct,#data
| #data→(direct) 立即數(shù)→直接地址單元direct
| 3
| 2
|
MOV direct,A
| (A)→(direct) 累加器A中的數(shù)據(jù)→直接地址單元direct
| 2
| 2
|
MOV direct,Rn
| (Rn)→(direct) 寄存器Rn中的數(shù)據(jù)→直接地址單元direct
| 2
| 2
|
MOV direct,@Ri
| ((Ri))→(direct) 寄存器Ri中的數(shù)據(jù)指定的地址單元中數(shù)據(jù)→直接地址單元direct
| 2
| 2
|
MOV @Ri,direct
| (direct)→((Ri)) 直接地址單元中的數(shù)據(jù)→以Ri中的內(nèi)容為地址的RAM單元
| 2
| 2
|
MOV @Ri,#data
| #data→((Ri)) 立即數(shù)→以Ri中的內(nèi)容為地址的RAM單元
| 2
| 1
|
MOV @Ri,A
| (A)→((Ri)) 累加器A中的數(shù)據(jù)→以Ri中的內(nèi)容為地址的RAM單元
| 1
| 1
|
MOVC A,@A+DPTR
| ((A))+(DPTR)→(A) 表格地址單元中的數(shù)據(jù)→累加器A
| 3
| 2
|
MOVC A,@A+PC
| ((PC))+1→(A),((A))+(PC)→(A) 表格地址單元中的數(shù)據(jù)→累加器A
| 1
| 2
|
MOVX @DPTR,A
| (A)→((DPTR)) 累加器中的數(shù)據(jù)→數(shù)據(jù)指針指向片外RAM地址中
| 3
| 2
|
MOVX A, @DPTR
| (A)→((DPTR)) 累加器中的數(shù)據(jù) → 數(shù)據(jù)指針指向片外RAM地址中
| 3
| 2
|
MOVX A, @Ri
| ((Ri))→(A) 寄存器Ri指向片外RAM地址中的數(shù)據(jù)→累加器A中
| 1
| 2
|
MOVX @Ri,A
| (A)→((Ri)) 累加器中的數(shù)據(jù)→寄存器Ri指向片外RAM地址中
| 1
| 2
|
PUSH direct
| (SP)+1→(SP),(direct)→(SP) 堆棧指針首先加1,直接尋址單元中的數(shù)據(jù)送到堆棧指針SP所指的單元中
| 2
| 2
|
PUSH A
| 將累加器A中的數(shù)據(jù)→堆棧頂端
| 2
| 2
|
POP direct
| (SP)→(direct)(SP)-1→(SP), 堆棧指針SP所指的單元數(shù)據(jù)送到直接尋址單元中,堆棧指針SP再進(jìn)行減1操作
| 2
| 2
|
POP A
| 將堆棧頂端的數(shù)據(jù)→累加器A
| 2
| 2
|
XCH A,Rn
| (A)←→(Rn)累加器與工作寄存器Rn中的數(shù)據(jù)互換
| 1
| 1
|
XCH A,@Ri
| (A)←→((Ri))累加器與工作寄存器Ri所指的存儲單元中的數(shù)據(jù)互換
| 1
| 1
|
XCH A, direct
| (A)←→(direct)累加器與直接地址單元中的內(nèi)容互換
| 2
| 2
|
XCHD A,@Ri
| (A3-0)←→((Ri)3-0)累加器與工作寄存器Ri所指的存儲單元中的數(shù)據(jù)低半字節(jié)互換
| 1
| 1
|
SWAP A
| (A3-0)←→(A7-4)累加器中的內(nèi)容高低半字節(jié)互換
| 1
| 1
|
MOV DPTR,#data16
| #dataH→(DPH),#dataL→(DPL)16位常數(shù)的高8位送到DPH,低8位送到DPL
| 3
| 2
|
ADD A,#data
| A)+#data→(A) 累加器A中的數(shù)據(jù)與立即數(shù)#data相加,結(jié)果存在A中
| 2
| 1
|
ADD A,direct
| A)+(direct)→(A) 累加器A中的數(shù)據(jù)與直接地址單元中的數(shù)據(jù)相加,結(jié)果存在A中
| 2
| 1
|
指令格式(助記符)
| 指令功能說明
| 字節(jié)
| 周期
|
ADD A,Rn
| (A)+(Rn)→(A) 累加器A中的數(shù)據(jù)與工作寄存器Rn中的數(shù)據(jù)相加,結(jié)果存在A中
| 1
| 1
|
ADD A,@Ri
| (A)+((Ri))→(A) 累加器A中的數(shù)據(jù)與工作寄存器Ri所指向地址單元中的數(shù)據(jù)相加,結(jié)果存在A中
| 1
| 1
|
ADDC A,direct
| (A)+(direct)+(C)→(A) 累加器A中的數(shù)據(jù)與直接地址單元的數(shù)據(jù)連同進(jìn)位位相加,結(jié)果存在A中
| 2
| 1
|
ADDC A,#data
| (A)+#data +(C)→(A) 累加器A中的數(shù)據(jù)與立即數(shù)連同進(jìn)位位相加,結(jié)果存在A中
| 2
| 1
|
ADDC A,Rn
| A)+Rn+(C)→(A) 累加器A中的數(shù)據(jù)與工作寄存器Rn中的數(shù)據(jù)、連同進(jìn)位位相加,結(jié)果存在A中
| 1
| 1
|
ADDC A,@Ri
| (A)+((Ri))+(C)→(A) 累加器A中的數(shù)據(jù)與工作寄存器Ri指向地址單元中的數(shù)據(jù)、連同進(jìn)位位相加,結(jié)果存在A中
| 1
| 1
|
SUBB A,direct
| (A)-(direct)-(C)→(A) 累加器A中的數(shù)據(jù)與直接地址單元中的數(shù)據(jù)、連同借位位相減,結(jié)果存在A中
| 2
| 1
|
SUBB A,#data
| (A)-(Rn)-(C)→(A) 累加器A中的數(shù)據(jù)與工作寄存器中的數(shù)據(jù)、連同借位位相減,結(jié)果存在A中
| 2
| 1
|
SUBB A,Rn
| (A)-(Rn)-(C)→(A) 累加器A中的數(shù)據(jù)與工作寄存器中的數(shù)據(jù)、連同借位位相減,結(jié)果存在A中
| 1
| 1
|
SUBB A,@Ri
| (A)-((Ri))-(C)→(A) 累加器A中的數(shù)據(jù)與工作寄存器Ri指向的地址單元中的數(shù)據(jù)、連同借位位相減,結(jié)果存在A中
| 1
| 1
|
MUL AB
| (A)×(B)→(A)和(B) 累加器A中的數(shù)據(jù)乘以寄存器B中的數(shù)據(jù),結(jié)果高字節(jié)存入寄存器B,底字節(jié)存入累加器A
| 1
| 4
|
DIV AB
| (A)÷(B)→(A)和(B) 累加器A中的數(shù)據(jù)除以寄存器B中的數(shù)據(jù),結(jié)果的商存入累加器A,余數(shù)存入寄存器B中
| 1
| 4
|
INC A
| +1¡ú(A) 累加器A中的數(shù)據(jù)加1,結(jié)果存在A中
| 1
| 1
|
INC direct
| (direct)+1→(direct) 直接地址單元中的數(shù)據(jù)加1,結(jié)果送回原地址單元中,如果直接地址是I/O,其功能是先讀入I/O鎖存器的內(nèi)容,然后在CPU進(jìn)行加1操作,再輸出到I/O上,這就是“讀—修改—寫”操作
| 2
| 1
|
INC @Ri
| ((Ri))+1→((Ri)) 寄存器的數(shù)據(jù)指向的地址單元中的數(shù)據(jù)加1,結(jié)果送回原地址單元中
| 1
| 1
|
NC Rn
| Rn)+1→(Rn)寄存器Rn的數(shù)據(jù)加1,結(jié)果送回原地址單元
| 1
| 1
|
INC DPTR
| (DPTR)+1→(DPTR)數(shù)據(jù)指針的數(shù)據(jù)加1,結(jié)果送回數(shù)據(jù)指針中
| 1
| 2
|
DEC A
| (A)-1→(A)累加器A中的數(shù)據(jù)減1,結(jié)果送回累加器A
| 1
| 1
|
DEC direct
| (direct)-1→(direct)直接地址單元中的數(shù)據(jù)減1,結(jié)果送回直接地址單元中
| 2
| 1
|
DEC @Ri
| ((Ri))-1→((Ri))寄存器Ri指向的地址單元中的數(shù)據(jù)減1,結(jié)果送回原地址單元中
| 1
| 1
|
DEC Rn
| (Rn)-1→(Rn)寄存器Rn中的數(shù)據(jù)減1,結(jié)果送回寄存器Rn中
| 1
| 1
|
DA A
| 累加器A中的數(shù)據(jù)做BCD調(diào)整
| 1
| 1
|
RL A
| 累加器A中的數(shù)據(jù)左移一位,bit7¡úbit0
| 1
| 1
|
RR A
| 累加器A中的數(shù)據(jù)右移一位,bit7¡úbit7
| 1
| 1
|
RLC A
| 累加器A中的數(shù)據(jù)連同進(jìn)位標(biāo)志位CY左移一位,bit7¡úCY,CY¡úbit0
| 1
| 1
|
RRC A
| 累加器A中的數(shù)據(jù)連同進(jìn)位CY位CY右移一位,bi0¡úCY,CY¡úbit7
| 1
| 1
|
SWAP A
| 累加器中的數(shù)據(jù)高低半字節(jié)互換
| 1
| 1
|
CPL A
| 累加器中的數(shù)據(jù)按位取反,即0¡ú1,1¡ú0
| 1
| 1
|
CLR A
| 0¡ú(A),累加器中的數(shù)據(jù)清0H
| 1
| 1
|
ANL A,direct
| 累加器A中的數(shù)據(jù)和直接地址單元中的數(shù)據(jù)執(zhí)行與操作。結(jié)果存在寄存器A中
| 2
| 1
|
ANL direct,#data
| 直接地址單元中的數(shù)據(jù)和立即數(shù)執(zhí)行與操作。結(jié)果存在直接地址單元中
| 3
| 2
|
指令格式(助記符)
| 指令功能說明
| 字節(jié)
| 周期
|
NL A,#data
| 累加器A的數(shù)據(jù)和立即數(shù)執(zhí)行與操作。結(jié)果存在累加器A中
| 2
| 1
|
NL A,Rn
| 累加器A的數(shù)據(jù)和寄存器Rn中的數(shù)據(jù)執(zhí)行與操作。結(jié)果存在累加器A中
| 1
| 1
|
ANL direct,A
| 直接地址單元中的數(shù)據(jù)和累加器A的數(shù)據(jù)執(zhí)行與操作。結(jié)果存在直接地址單元中
| 2
| 1
|
ANL A,@Ri
| 累加器A的數(shù)據(jù)和工作寄存器Ri指向的地址單元中的數(shù)據(jù)執(zhí)行與操作。結(jié)果存在累加器A中
| 1
| 1
|
ORL A,direct
| 累加器A中的數(shù)據(jù)和直接地址單元中的數(shù)據(jù)執(zhí)行邏輯或操作。結(jié)果存在寄存器A中
| 2
| 1
|
ORL direct,#data
| 累加器A中的數(shù)據(jù)和直接地址單元中的數(shù)據(jù)執(zhí)行邏輯或操作。結(jié)果存在寄存器A中
| 3
| 2
|
ORL A,#data
| 累加器A的數(shù)據(jù)和立即數(shù)執(zhí)行邏輯或操作。結(jié)果存在累加器
| 2
| 1
|
ORL A,Rn
| 累加器A的數(shù)據(jù)和寄存器Rn中的數(shù)據(jù)執(zhí)行邏輯或操作。結(jié)果存在累加器A中
| 1
| 1
|
ORL direct,A
| 直接地址單元中的數(shù)據(jù)和累加器A的數(shù)據(jù)執(zhí)行邏輯或操作。結(jié)果存在直接地址單元中
| 2
| 1
|
ORL A,@Ri
| 累加器A的數(shù)據(jù)和工作寄存器Ri指向的地址單元中的數(shù)據(jù)執(zhí)行邏輯或操作。結(jié)果存在累加器A中
| 1
| 1
|
XRL A,direct
| 累加器A中的數(shù)據(jù)和直接地址單元中的數(shù)據(jù)執(zhí)行邏輯異或操作。結(jié)果存在寄存器A中
| 2
| 1
|
XRL direct,#data
| 直接地址單元中的數(shù)據(jù)和立即數(shù)執(zhí)行邏輯異或操作。結(jié)果存在直接地址單元中
| 3
| 2
|
XRL A,#data
| 累加器A的數(shù)據(jù)和立即數(shù)執(zhí)行邏輯異或操作。結(jié)果存在累加器A中
| 2
| 1
|
XRL A,Rn
| 累加器A的數(shù)據(jù)和寄存器Rn中的數(shù)據(jù)執(zhí)行邏輯異或操作。結(jié)果存在累加器A中
| 1
| 1
|
XRL data,A
| 直接地址單元中的數(shù)據(jù)和累加器A的數(shù)據(jù)執(zhí)行邏輯異或操作。結(jié)果存在直接地址單元中
| 2
| 1
|
XRL A,@Ri
| 累加器A的數(shù)據(jù)和工作寄存器Ri指向的地址單元中的數(shù)據(jù)執(zhí)行邏輯異或操作。結(jié)果存在累加器A中
| 1
| 1
|
CLR C
| 清除進(jìn)位標(biāo)志CY為0
| 1
| 1
|
CLR bit
| 清除bit為0
| 2
| 1
|
SETB C
| 設(shè)定進(jìn)位標(biāo)志CY為1
| 1
| 1
|
SETB bit
| 設(shè)定bit為1
| 2
| 1
|
CPL C
| 將進(jìn)位標(biāo)志CY反相
| 1
| 1
|
CPL bit
| 將bit反相
| 2
| 1
|
ANL C,bit
| 將進(jìn)位標(biāo)志CY AND bit值¡ú進(jìn)位標(biāo)志位CY
| 2
| 2
|
ANL C,/bit
| 將進(jìn)位標(biāo)志CY AND bit反相值¡ú進(jìn)位標(biāo)志位CY
| 2
| 2
|
ANL A,#data
| 將累加器A的各位與立即數(shù)的相對位置做AND¡úA累加器
| 2
| 2
|
ORL C,bit
| 將進(jìn)位標(biāo)志CY OR bit值¡ú進(jìn)位標(biāo)志位CY
| 2
| 2
|
ORL C,/bit
| 將進(jìn)位標(biāo)志CY OR bit反相值¡ú進(jìn)位標(biāo)志位CY
| 2
| 2
|
ORL A,#data
| 將累加器A的各位與立即數(shù)的相對位置做OR¡úA累加器
| 2
| 2
|
MOV C,bit
| 將bit值¡ú進(jìn)位標(biāo)志位CY
| 2
| 1
|
MOV bit,C
| 將進(jìn)位標(biāo)志位CY¡úbit值
| 2
| 2
|
JC rel
| 當(dāng)進(jìn)位標(biāo)志位CY=1就跳至rel,否則執(zhí)行下一條指令
| 2
| 2
|
JNC rel
| 當(dāng)進(jìn)位標(biāo)志位CY=0就跳至rel,否則執(zhí)行下一條指令
| 2
| 2
|
JB bit rel
| 當(dāng)進(jìn)bit=1就跳至rel,否則執(zhí)行下一條指令
| 3
| 3
|
JNB bit rel
| 當(dāng)進(jìn)bit=0就跳至rel,否則執(zhí)行下一條指令
| 3
| 3
|
JBC bit rel
| 當(dāng)進(jìn)bit=1跳至rel,并且清除此bit為0,否則執(zhí)行下一條指令
| 3
| 3
|
ACALL addr11
| 2K范圍內(nèi)子程序調(diào)用
| 2
| 2
|
LCALL addr16
| 64K范圍內(nèi)子程序調(diào)用
| 3
| 3
|
RET
| 子程序返回
| 1
| 2
|
RET1
| 中斷服務(wù)程序結(jié)束返回
| 1
| 2
|
指令格式(助記符)
| 指令功能說明
| 字節(jié)
| 周期
|
AJMP addr11
| 2K范圍內(nèi)無條件跳轉(zhuǎn)
| 2
| 2
|
LJMP addr16
| 64K范圍內(nèi)無條件跳轉(zhuǎn)
| 2
| 2
|
SJMP rel
| 在此指令的前128或后128范圍內(nèi)無條件跳轉(zhuǎn)
| 2
| 2
|
JMP @A+DPTR
| 跳至@A+DPTR所指定的地址
| 1
| 2
|
JZ rel
| 如A的內(nèi)容為0,則短跳轉(zhuǎn),負(fù)責(zé)執(zhí)行下一條指令
| 2
| 2
|
JNZ rel
| 如A的內(nèi)容不為0,則短跳轉(zhuǎn),負(fù)責(zé)執(zhí)行下一條指令
| 2
| 2
|
CJNE A,direct,rel
| 如A的內(nèi)容與直接地址內(nèi)的數(shù)據(jù)不同,則短跳轉(zhuǎn)
| 3
| 2
|
CJNE A,#data,rel
| 如A的內(nèi)容與立即數(shù)不同,則短跳轉(zhuǎn)
| 3
| 2
|
CJNE Rn,#data,rel
| 如Rn寄存器中的數(shù)據(jù)與立即數(shù)不同,則短跳轉(zhuǎn)
| 3
| 2
|
CJNE @Ri,#data,rel
| 如間接地址的數(shù)據(jù)與立即數(shù)不同,則短跳轉(zhuǎn)
| 3
| 2
|
DJNZ Rn,rel
| Rn寄存器中的數(shù)據(jù)減1,若不為0,則短跳轉(zhuǎn),否則執(zhí)行下條指令
| 2
| 2
|
DJNZ direct,rel
| 直接地址中的數(shù)據(jù)減1,若不為0,則短跳轉(zhuǎn),負(fù)責(zé)執(zhí)行下條指令
| 3
| 2
|
NOP
| CPU僅僅作取指令,不動作
| 1
| 1
|