天天看點

80C51單片機彙編指令

資料傳送類指令:

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 累加器為零轉移

9* JNZ 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,rel 直接位址單元減1,非零轉移 

17 NOP 空操作