微控制器各個指令的意思
- 2021-08-13
MCS-5 系 列 單 片 機 指 令 表
A。1資料傳送類指令
助記符 功能說明 機器碼 位元組數 機器週期
MOV A, Rn 暫存器內容送入累加器 E8~EF 1 1
direct direct送入累加器 E5(direct) 2 1
@Ri @Ri送入累加器 E6~E7 1 1
#data8 8位立即數送入累加器 74(direct) 2 1
MOV Rn, A 累加器內容送入暫存器 F8~FF 1 1
direct direct 送入暫存器 A8(direct) 2 2
#data8 8位立即數送入暫存器 78(data8) 2 1
MOV direct, A 累加器內容送入direct F5(direct) 2 1
Rn 暫存器內送入direct 88~8F(direct) 2 2
direct direct送入direct 85(direct)(direct) 3 2
@Ri @Ri送入直接地址單元 86 87(direct) 2 2
#data8 8位立即數送入直接單元地址 75(direct)(data8) 3 2
MOV @Ri A 累加器內容送入間接RAM單元 F6 F7 1 1
direct direct送入間接RAM單元 A6 A7(direct) 2 2
#data8 #data8送入間接RAM單元 76 77(data8) 2 1
MOV DPTR,#data16 #data16送入DPTR 90(directH)(directL) 3 2
MOVX A, @Ri 外部RAM(8位地址)送入A E3 E2 1 2
@DPTR 外部RAM(16位地址)送入A E0 1 2
MOVX @Ri,A A送入外部RAM(8位地址) F2 F3 1 2
MOV DPTR,A A送入外部RAM(16位地址) F0 1 2
SWAP A 累加器高4位與低4位互換 C4 1 1
XCHD A,@Ri @Ri與A進行低半位元組互換 D6 D7 1 1
XCH A, Rn Rn與累加器交換 C8 CF 1 1
direct direct與累加器交換 C5(direct) 2 1
@Ri @Ri與累加器交換 C6 C7 1 1
MOVC A,@A+DPTR 以DPTR為基址查表 93 1 2
MOVC A,@A+PC 以PC為基址查表 83 1 2
PUSH direct 入棧 D0(direct) 2 2
POP direct 出棧 C0(direct) 2 2
……………………………………………………………………………。。
A。2算術操作類指令
ADD A, Rn 暫存器內容加 28~2F 1 1
direct 直接地址單元加 25(direct) 2 1
@Ri 間接RAM內容加 26 27 1 1
#data8 8位立即數 24(data8) 2 1
ADDC A, Rn 暫存器內容帶進位加 38~3F 1 1
direct 直接地址單元帶進位加 35(direct) 2 1
@Ri 間接RAM內容帶進位加 36 37 1 1
#data8 8位立即數帶進位加 34(data8) 2 1
INC A 累加器加1 04 1 1
Rn 暫存器加1 08~0F 1 1
direct 直接地址單元內容加1 05(direct) 2 1
@Ri 間接RAM內容加1 06 07 1 1
DPTR DPTR加1 A3 1 1
DA A 累加器進行十進位制轉換 D4 1 1
SUBB A, Rn 帶借位減暫存器內容 98~9F 1 1
direct 帶借位減直接地址單元 95(direct) 2 1
@Ri 帶借位減間接RAM內容 96 97 1 1
#data8 帶借位減8位立即數 94(data8) 2 1
DEC A 累加器減1 14 1 1
Rn 暫存器減1 18~1F 1 1
direct 直接地址單元內容減1 15(direct) 2
@Ri 間接RAM內容減1 16 17 1 1
MUL A,B A乘以B A4 1 4
DIV A,B A除以B 84 1 4
……………………………………………………………………………。。
A。3邏輯操作類指令
CLR A 累加器清零 E4 1 1
CPL A 累加器求反 F4 1 1
ANL A, Rn 累加器與暫存器相與 58~5F 1 1
direct 累加器與direct相與 55(direct) 2 1
@Ri 累加去與間接RAM內容相與 56 57 1 1
#data8 累加器與8位立即數相與 54(data8) 2 1
ANL direct, A direct與累加器相與 52(direct) 2 1
#data8 Direct與#data8相與 53(direct)(data8 3 2
ORL A, Rn 累加器與暫存器相或 48~4F 1 1
direct 累加器與直接地址單元相或 45(direct) 2 1
@Ri 累加器與間接RAM內容相或 46 47 1 1
#data8 累加器與8位立即數相或 44(dtat8) 2 1
ORL direct
ORL direct A direct與累加器相或 42(direct) 2 1
#data8 direct與#data8相或 43(direct)(data8 3 2
XRL A, Rn 累加器與暫存器相異或 68~6F 1 1
direct 累加器與direct相異或 65(direct) 2 1
@Ri 累加器與@Ri相異或 66 67 1 1
#data8 累加器與#data8相異或 64(data8) 2 1
XLA direct A direct與累加器相異或 62(direct) 2 1
#data8 direct與#data相異或 63(direct)(data8 3 2
迴圈/移位類指令
RL A 累加器迴圈左移 23 1 1
RLC A 累加器帶進位迴圈左移 33 1 1
RR A 累加器迴圈右移 03 1 1
RRC A 累加器帶進位迴圈右移 13 1 1
……………………………………………………………………………。。
A。4控制轉移類指令
LJMP addr16 長轉移 02(addrH)(addrL) 3 2
AJMP addr11 絕對短轉移 (addrH*20+1)(addrL) 2 2
SJMP rel 相對轉移 80(rel) 2 2
JMP @A+DPTR 相對於DPTR的間接轉移 73 1 2
JZ rel 累加器為零轉移 60(rel) 2 2
JNZ rel 累加器非零轉移 70(rel) 2 2
CJNE A,direct,rel A與direct比較不等則轉移 B5(direct)(rel) 3 2
CJNE A,#data8,rel A與#data8比較不等則轉移 B4(data)(rel) 3 2
CJNE Rn,#data,rel Rn與#data8比較不等則轉移 B8~BF(data8)(rel) 3 2
CJNE @Ri,#data8,rel @Ri與#data8比較不等則轉移 B6 B7(data8)(rel) 3 2
DJNZ Rn,rel 暫存器減1非零轉移 D8~DF(rel) 3 2
DJNZ direct,rel direct減1非零轉移 D5(direct)(rel) 3 2
ACALL addr11 絕對短呼叫子程式 (addrH*20+1)(addrL) 2 2
LACLL addr16 長呼叫子程式 12(addrH)(addrL) 3 2
RET 子程式返回 22 1 2
RETI 中斷返回 32 1 2
NOP 空操作 00 1 1
…………………………………………………………………………………………………………………………………………………………。
………………………………………………………………………………
A。5位操作類指令
CLR C 清進位位 C3 1 1
CLR bit 清直接地址位 C2(bit) 2 1
SETB C 置進位位 D3 1 1
SETB bit 置直接地址位 D2(bit) 2 1
CPL C 進位位求反 B3 1 1
CPL bit 直接地址位求反 B2(bit) 2 1
ANL C,bit 進位位和bit相與 82(bit) 2 2
ANL C,/bit 進位位和bit的反碼相與 B0(bit) 2 2
ORL C,bit 進位位和bit相或 72(bit) 2 2
ORL C,/bit 進位位和bit的反碼相或 A0(bit) 2 2
MOV C,bit 直接地址位送入進位位 A2(bit) 2 1
MOV bit,C 進位位送入直接地址位 92(bit) 2 2
JC rel 進位位為1則轉移 40(rel) 2 2
JNC rel 進位位為0則轉移 50(rel) 2 2
JB bit,rel 直接地址位1則轉移 20(bit)(rel) 3 2
JNB bir,rel 直接地址為0則轉移 10(bit)(rel) 3 2
JNC bit,rel bit為1則轉移該位清零 30(bit)(rel) 3 2
你把指令寫出來,我告訴你
51有111條,讓我寫出來會很費經的
什麼微控制器都沒說,又沒說什麼具體指令!!!天知道
上一篇:江寧重彩怎麼去
下一篇:色盲能治好嗎?怎麼矯正