單片機的111條指令集合
1 MOV A,Rn 寄存器內容送入累加器
2 MOV A,direct 直接地址單元中的數據送入累加器
3 MOV A,@Ri 間接RAM 中的數據送入累加器
4 MOV A,#tata 立即數送入累加器
5 MOV Rn,A 累加器內容送入寄存器
6 MOV Rn,direct 直接地址單元中的數據送入寄存器
7 MOV Rn,#data 立即數送入寄存器
8 MOV direct,A 累加器內容送入直接地址單元
9 MOV direct,Rn 寄存器內容送入直接地址單元
10 MOV direct,direct 直接地址單元中的數據送入另一個直接地址單元
11 MOV direct,@Ri 間接RAM 中的數據送入直接地址單元
12 MOV direct,#data 立即數送入直接地址單元
13 MOV @Ri,A 累加器內容送間接RAM 單元
14 MOV @Ri,direct 直接地址單元數據送入間接RAM 單元
15 MOV @RI,#data 立即數送入間接RAM 單元
16 MOV DRTR,#dat16 16 位立即數送入地址寄存器
17 MOVC A,@A+DPTR 以DPTR為基地址變址尋址單元中的數據送入累加器
18 MOVC A,@A+PC 以PC 為基地址變址尋址單元中的數據送入累加器
19 MOVX A,@Ri 外部RAM(8 位地址)送入累加器
20 MOVX A,@DPTR 外部RAM(16 位地址)送入累加器
21 MOVX @Ri,A 累計器送外部RAM(8 位地址)
22 MOVX @DPTR,A 累計器送外部RAM(16 位地址)
23 PUSH direct 直接地址單元中的數據壓入堆棧
24 POP direct 彈棧送直接地址單元
25 XCH A,Rn 寄存器與累加器交換
26 XCH A,direct 直接地址單元與累加器交換
27 XCH A,@Ri 間接RAM 與累加器交換
28 XCHD A,@Ri 間接RAM 的低半字節與累加器交換
算術操作類指令:
1 ADD A,Rn 寄存器內容加到累加器
2 ADD A,direct 直接地址單元的內容加到累加器
3 ADD A,@Ri 間接ROM 的內容加到累加器
4 ADD A,#data 立即數加到累加器
5 ADDC A,Rn 寄存器內容帶進位加到累加器
6 ADDC A,direct 直接地址單元的內容帶進位加到累加器
7 ADDC A,@Ri 間接ROM 的內容帶進位加到累加器
8 ADDC A,#data 立即數帶進位加到累加器
9 SUBB A,Rn 累加器帶借位減寄存器內容
10 SUBB A,direct 累加器帶借位減直接地址單元的內容
11 SUBB A,@Ri 累加器帶借位減間接RAM 中的內容
12 SUBB A,#data 累加器帶借位減立即數
13 INC A 累加器加1
14 INC Rn 寄存器加1
15 INC direct 直接地址單元加1
16 INC @Ri 間接RAM 單元加1
17 DEC A 累加器減1
18 DEC Rn 寄存器減1 1 12
19 DEC direct 直接地址單元減1
20 DEC @Rj 間接RAM 單元減 1
21 INC DPTR 地址寄存器DPTR 加 1
22 MUL AB A 乘以B,結果放在A
23 DIV AB A 除以B,結果放在A
24 DA A 累加器十進制調整
布爾變量操作類指令:
1 CLR C 清進位位
2 CLR bit 清直接地址位
3 SETB C 置進位位
4 SETB bit 置直接地址位
5 CPL C 進位位求反
6 CPL bit 置直接地址位求反
7 ANL C,bit 進位位和直接地址位相“與”
8 ANL C,bit 進位位和直接地址位的反碼相“與”
9 ORL C,bit 進位位和直接地址位相“或”
10 ORL C,bit 進位位和直接地址位的反碼相“或”
11 MOV C,bit 直接地址位送入進位位
12 MOV bit,C 進位位送入直接地址位
13 JC rel 進位位為1 則轉移
14 JNC rel 進位位為0 則轉移
15 JB bit,rel 直接地址位為1 則轉移
16 JNB bit,rel 直接地址位為0 則轉移
17 JBC bit,rel 直接地址位為1 則轉移,該位清零
邏輯操作數指令:
1 ANL A,Rn 累加器與寄存器相“與”
2 ANL A,direct 累加器與直接地址單元相“與”
3 ANL A,@Ri 累加器與間接RAM 單元相“與”
4 ANL A,#data 累加器與立即數相“與”
5 ANL direct,A 直接地址單元與累加器相“與”
6 ANL direct,#data 直接地址單元與立即數相“與”
7 ORL A,Rn 累加器與寄存器相“或”
8 ORL A,direct 累加器與直接地址單元相“或”
9 ORL A,@Ri 累加器與間接RAM 單元單元相“或”
10 ORL A,#data 累加器與立即數相“或”
11 ORL direct,A 直接地址單元與累加器相“或”
12 ORL direct,#data 直接地址單元與立即數相“或”
13 XRL A,Rn 累加器與寄存器相“異或”
14 XRL A,direct 累加器與直接地址單元相“異或”
15 XRL A,@Ri 累加器與間接RAM 單元單元相“異或”
16 XRL A,#data 累加器與立即數相“異或”
17 XRL direct,A 直接地址單元與累加器相“異或”
18 XRL direct,#data 直接地址單元與立即數相“異或”
19 CLR A 累加器清“0”
20 CPL A 累加器求反
21 RL A 累加器循環左移
22 RLC A 累加器帶進位位循環左移
23 RR A 累加器循環右移
24 RRC A 累加器帶進位位循環右移
25 SWAP A 累加器半字節交換
控制轉移類指令:
1 ACALL addr11 絕對(短)調用子程序
2 LCALL addr16 長調用子程序
3 RET 子程序返回
4 RETI 中數返回
5 AJMP addr11 絕對(短)轉移
6 LJMP addr16 長轉移
7 SJMP rel 相對轉移
8 JMP @A+DPTR 相對于DPTR 的間接轉移
9 JZ rel 累加器為零轉移
10 CJNE rel 累加器非零轉移
11 CJNE A,direct,rel 累加器與直接地址單元比較,不相等則轉移
12 CJNE A,#data,rel 累加器與立即數比較,不相等則轉移
13 CJNE Rn,#data,rel 寄存器與立即數比較,不相等則轉移
14 CJNE @Ri,#data,rel 間接RAM 單元與立即數比較,不相等則轉移
15 DJNZ Rn,rel 寄存器減1,非零轉移
16 DJNZ direct,erl 直接地址單元減1,非零轉移
17 NOP 空操作
記住指令表是學好單片機的第一步,也是重要一步.
評論