指令格式(助記符) | 指令功能說明 | 字節(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再進行減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相加,結果存在A中 | 2 | 1 |
ADD A,direct | A)+(direct)→(A) 累加器A中的數(shù)據(jù)與直接地址單元中的數(shù)據(jù)相加,結果存在A中 | 2 | 1 |
指令格式(助記符) | 指令功能說明 | 字節(jié) | 周期 |
ADD A,Rn | (A)+(Rn)→(A) 累加器A中的數(shù)據(jù)與工作寄存器Rn中的數(shù)據(jù)相加,結果存在A中 | 1 | 1 |
ADD A,@Ri | (A)+((Ri))→(A) 累加器A中的數(shù)據(jù)與工作寄存器Ri所指向地址單元中的數(shù)據(jù)相加,結果存在A中 | 1 | 1 |
ADDC A,direct | (A)+(direct)+(C)→(A) 累加器A中的數(shù)據(jù)與直接地址單元的數(shù)據(jù)連同進位位相加,結果存在A中 | 2 | 1 |
ADDC A,#data | (A)+#data +(C)→(A) 累加器A中的數(shù)據(jù)與立即數(shù)連同進位位相加,結果存在A中 | 2 | 1 |
ADDC A,Rn | A)+Rn+(C)→(A) 累加器A中的數(shù)據(jù)與工作寄存器Rn中的數(shù)據(jù)、連同進位位相加,結果存在A中 | 1 | 1 |
ADDC A,@Ri | (A)+((Ri))+(C)→(A) 累加器A中的數(shù)據(jù)與工作寄存器Ri指向地址單元中的數(shù)據(jù)、連同進位位相加,結果存在A中 | 1 | 1 |
SUBB A,direct | (A)-(direct)-(C)→(A) 累加器A中的數(shù)據(jù)與直接地址單元中的數(shù)據(jù)、連同借位位相減,結果存在A中 | 2 | 1 |
SUBB A,#data | (A)-(Rn)-(C)→(A) 累加器A中的數(shù)據(jù)與工作寄存器中的數(shù)據(jù)、連同借位位相減,結果存在A中 | 2 | 1 |
SUBB A,Rn | (A)-(Rn)-(C)→(A) 累加器A中的數(shù)據(jù)與工作寄存器中的數(shù)據(jù)、連同借位位相減,結果存在A中 | 1 | 1 |
SUBB A,@Ri | (A)-((Ri))-(C)→(A) 累加器A中的數(shù)據(jù)與工作寄存器Ri指向的地址單元中的數(shù)據(jù)、連同借位位相減,結果存在A中 | 1 | 1 |
MUL AB | (A)×(B)→(A)和(B) 累加器A中的數(shù)據(jù)乘以寄存器B中的數(shù)據(jù),結果高字節(jié)存入寄存器B,底字節(jié)存入累加器A | 1 | 4 |
DIV AB | (A)÷(B)→(A)和(B) 累加器A中的數(shù)據(jù)除以寄存器B中的數(shù)據(jù),結果的商存入累加器A,余數(shù)存入寄存器B中 | 1 | 4 |
INC A | +1¡ú(A) 累加器A中的數(shù)據(jù)加1,結果存在A中 | 1 | 1 |
INC direct | (direct)+1→(direct) 直接地址單元中的數(shù)據(jù)加1,結果送回原地址單元中,如果直接地址是I/O,其功能是先讀入I/O鎖存器的內(nèi)容,然后在CPU進行加1操作,再輸出到I/O上,這就是“讀—修改—寫”操作 | 2 | 1 |
INC @Ri | ((Ri))+1→((Ri)) 寄存器的數(shù)據(jù)指向的地址單元中的數(shù)據(jù)加1,結果送回原地址單元中 | 1 | 1 |
NC Rn | Rn)+1→(Rn)寄存器Rn的數(shù)據(jù)加1,結果送回原地址單元 | 1 | 1 |
INC DPTR | (DPTR)+1→(DPTR)數(shù)據(jù)指針的數(shù)據(jù)加1,結果送回數(shù)據(jù)指針中 | 1 | 2 |
DEC A | (A)-1→(A)累加器A中的數(shù)據(jù)減1,結果送回累加器A | 1 | 1 |
DEC direct | (direct)-1→(direct)直接地址單元中的數(shù)據(jù)減1,結果送回直接地址單元中 | 2 | 1 |
DEC @Ri | ((Ri))-1→((Ri))寄存器Ri指向的地址單元中的數(shù)據(jù)減1,結果送回原地址單元中 | 1 | 1 |
DEC Rn | (Rn)-1→(Rn)寄存器Rn中的數(shù)據(jù)減1,結果送回寄存器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ù)連同進位標志位CY左移一位,bit7¡úCY,CY¡úbit0 | 1 | 1 |
RRC A | 累加器A中的數(shù)據(jù)連同進位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í)行與操作。結果存在寄存器A中 | 2 | 1 |
ANL direct,#data | 直接地址單元中的數(shù)據(jù)和立即數(shù)執(zhí)行與操作。結果存在直接地址單元中 | 3 | 2 |
指令格式(助記符) | 指令功能說明 | 字節(jié) | 周期 |
NL A,#data | 累加器A的數(shù)據(jù)和立即數(shù)執(zhí)行與操作。結果存在累加器A中 | 2 | 1 |
NL A,Rn | 累加器A的數(shù)據(jù)和寄存器Rn中的數(shù)據(jù)執(zhí)行與操作。結果存在累加器A中 | 1 | 1 |
ANL direct,A | 直接地址單元中的數(shù)據(jù)和累加器A的數(shù)據(jù)執(zhí)行與操作。結果存在直接地址單元中 | 2 | 1 |
ANL A,@Ri | 累加器A的數(shù)據(jù)和工作寄存器Ri指向的地址單元中的數(shù)據(jù)執(zhí)行與操作。結果存在累加器A中 | 1 | 1 |
ORL A,direct | 累加器A中的數(shù)據(jù)和直接地址單元中的數(shù)據(jù)執(zhí)行邏輯或操作。結果存在寄存器A中 | 2 | 1 |
ORL direct,#data | 累加器A中的數(shù)據(jù)和直接地址單元中的數(shù)據(jù)執(zhí)行邏輯或操作。結果存在寄存器A中 | 3 | 2 |
ORL A,#data | 累加器A的數(shù)據(jù)和立即數(shù)執(zhí)行邏輯或操作。結果存在累加器 | 2 | 1 |
ORL A,Rn | 累加器A的數(shù)據(jù)和寄存器Rn中的數(shù)據(jù)執(zhí)行邏輯或操作。結果存在累加器A中 | 1 | 1 |
ORL direct,A | 直接地址單元中的數(shù)據(jù)和累加器A的數(shù)據(jù)執(zhí)行邏輯或操作。結果存在直接地址單元中 | 2 | 1 |
ORL A,@Ri | 累加器A的數(shù)據(jù)和工作寄存器Ri指向的地址單元中的數(shù)據(jù)執(zhí)行邏輯或操作。結果存在累加器A中 | 1 | 1 |
XRL A,direct | 累加器A中的數(shù)據(jù)和直接地址單元中的數(shù)據(jù)執(zhí)行邏輯異或操作。結果存在寄存器A中 | 2 | 1 |
XRL direct,#data | 直接地址單元中的數(shù)據(jù)和立即數(shù)執(zhí)行邏輯異或操作。結果存在直接地址單元中 | 3 | 2 |
XRL A,#data | 累加器A的數(shù)據(jù)和立即數(shù)執(zhí)行邏輯異或操作。結果存在累加器A中 | 2 | 1 |
XRL A,Rn | 累加器A的數(shù)據(jù)和寄存器Rn中的數(shù)據(jù)執(zhí)行邏輯異或操作。結果存在累加器A中 | 1 | 1 |
XRL data,A | 直接地址單元中的數(shù)據(jù)和累加器A的數(shù)據(jù)執(zhí)行邏輯異或操作。結果存在直接地址單元中 | 2 | 1 |
XRL A,@Ri | 累加器A的數(shù)據(jù)和工作寄存器Ri指向的地址單元中的數(shù)據(jù)執(zhí)行邏輯異或操作。結果存在累加器A中 | 1 | 1 |
CLR C | 清除進位標志CY為0 | 1 | 1 |
CLR bit | 清除bit為0 | 2 | 1 |
SETB C | 設定進位標志CY為1 | 1 | 1 |
SETB bit | 設定bit為1 | 2 | 1 |
CPL C | 將進位標志CY反相 | 1 | 1 |
CPL bit | 將bit反相 | 2 | 1 |
ANL C,bit | 將進位標志CY AND bit值¡ú進位標志位CY | 2 | 2 |
ANL C,/bit | 將進位標志CY AND bit反相值¡ú進位標志位CY | 2 | 2 |
ANL A,#data | 將累加器A的各位與立即數(shù)的相對位置做AND¡úA累加器 | 2 | 2 |
ORL C,bit | 將進位標志CY OR bit值¡ú進位標志位CY | 2 | 2 |
ORL C,/bit | 將進位標志CY OR bit反相值¡ú進位標志位CY | 2 | 2 |
ORL A,#data | 將累加器A的各位與立即數(shù)的相對位置做OR¡úA累加器 | 2 | 2 |
MOV C,bit | 將bit值¡ú進位標志位CY | 2 | 1 |
MOV bit,C | 將進位標志位CY¡úbit值 | 2 | 2 |
JC rel | 當進位標志位CY=1就跳至rel,否則執(zhí)行下一條指令 | 2 | 2 |
JNC rel | 當進位標志位CY=0就跳至rel,否則執(zhí)行下一條指令 | 2 | 2 |
JB bit rel | 當進bit=1就跳至rel,否則執(zhí)行下一條指令 | 3 | 3 |
JNB bit rel | 當進bit=0就跳至rel,否則執(zhí)行下一條指令 | 3 | 3 |
JBC bit rel | 當進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 | 中斷服務程序結束返回 | 1 | 2 |
指令格式(助記符) | 指令功能說明 | 字節(jié) | 周期 |
AJMP addr11 | 2K范圍內(nèi)無條件跳轉 | 2 | 2 |
LJMP addr16 | 64K范圍內(nèi)無條件跳轉 | 2 | 2 |
SJMP rel | 在此指令的前128或后128范圍內(nèi)無條件跳轉 | 2 | 2 |
JMP @A+DPTR | 跳至@A+DPTR所指定的地址 | 1 | 2 |
JZ rel | 如A的內(nèi)容為0,則短跳轉,負責執(zhí)行下一條指令 | 2 | 2 |
JNZ rel | 如A的內(nèi)容不為0,則短跳轉,負責執(zhí)行下一條指令 | 2 | 2 |
CJNE A,direct,rel | 如A的內(nèi)容與直接地址內(nèi)的數(shù)據(jù)不同,則短跳轉 | 3 | 2 |
CJNE A,#data,rel | 如A的內(nèi)容與立即數(shù)不同,則短跳轉 | 3 | 2 |
CJNE Rn,#data,rel | 如Rn寄存器中的數(shù)據(jù)與立即數(shù)不同,則短跳轉 | 3 | 2 |
CJNE @Ri,#data,rel | 如間接地址的數(shù)據(jù)與立即數(shù)不同,則短跳轉 | 3 | 2 |
DJNZ Rn,rel | Rn寄存器中的數(shù)據(jù)減1,若不為0,則短跳轉,否則執(zhí)行下條指令 | 2 | 2 |
DJNZ direct,rel | 直接地址中的數(shù)據(jù)減1,若不為0,則短跳轉,負責執(zhí)行下條指令 | 3 | 2 |
NOP | CPU僅僅作取指令,不動作 | 1 | 1 |
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |