天天看點

MCS-51單片機指令系統總結(自學筆記)

MCS-51單片機指令系統共111條指令,按功能分為五類:

(1)資料傳送類 28

(2)算術操作類 24

(3)邏輯運算類 25

(4)控制轉移類 17

(5)位操作類 17

(1)資料傳送類 28

MOV A,Rn ;寄存器傳送到累加器

MOV A,direct ;直接位址傳送到累加器

MOV A,@Ri ;累加器傳送到外部RAM(8 位址)

MOV A,#data ;立即數傳送到累加器

MOV Rn,A ;累加器傳送到寄存器

MOV Rn,direct ;直接位址傳送到寄存器

MOV Rn,#data ;累加器傳送到直接位址

MOV direct,Rn ;寄存器傳送到直接位址

MOV direct,direct ;直接位址傳送到直接位址

MOV direct,A ;累加器傳送到直接位址

MOV direct,@Ri ;間接RAM 傳送到直接位址

MOV direct,#data ;立即數傳送到直接位址

MOV @Ri,A ;直接位址傳送到直接位址

MOV @Ri,direct ;直接位址傳送到間接RAM

MOV @Ri,#data ;立即數傳送到間接RAM

MOV DPTR,#data16 ;16 位常數加載到資料指針

MOVC A,@A+DPTR ;代碼位元組傳送到累加器

MOVC A,@A+PC ;代碼位元組傳送到累加器

MOVX A,@Ri ;外部RAM(8 位址)傳送到累加器

MOVX A,@DPTR ;外部RAM(16 位址)傳送到累加器

MOVX @Ri,A ;累加器傳送到外部RAM(8 位址)

MOVX @DPTR,A ;累加器傳送到外部RAM(16 位址)

PUSH direct ;直接位址壓入堆棧

POP direct ;直接位址彈出堆棧

XCH A,Rn ;寄存器和累加器交換

XCH A, direct ;直接位址和累加器交換

XCH A, @Ri ;間接RAM 和累加器交換

XCHD A, @Ri ;間接RAM 和累加器交換低4 位位元組

(2)算術操作類 24

INC A ;累加器加1

INC Rn ;寄存器加1

INC direct ;直接位址加1

INC @Ri ;間接RAM 加1

INC DPTR ;資料指針加1

DEC A ;累加器減1

DEC Rn ;寄存器減1

DEC direct ;直接位址減1

DEC @Ri ;間接RAM 減1

MUL AB ;累加器和B 寄存器相乘結果放在B(H),A(D)

DIV AB ;累加器除以B 寄存器,商->A,餘數->B

DA A ;累加器十進制調整

ADD A,Rn ;寄存器與累加器求和

ADD A,direct ;直接位址與累加器求和

ADD A,@Ri ;間接RAM 與累加器求和

ADD A,#data ;立即數與累加器求和

ADDC A,Rn ;寄存器與累加器求和(帶進位)

ADDC A,direct ;直接位址與累加器求和(帶進位)

ADDC A,@Ri ;間接RAM 與累加器求和(帶進位)

ADDC A,#data ;立即數與累加器求和(帶進位)

SUBB A,Rn ;累加器減去寄存器(帶借位)

SUBB A,direct ;累加器減去直接位址(帶借位)

SUBB A,@Ri ;累加器減去間接RAM(帶借位)

SUBB A,#data ;累加器減去立即數(帶借位)

(3)邏輯運算類 25

ANL A,Rn ;寄存器“與”到累加器

ANL A,direct ;直接位址“與”到累加器

ANL A,@Ri ;間接RAM“與”到累加器

ANL A,#data ;立即數“與”到累加器

ANL direct,A ;累加器“與”到直接位址

ANL direct, #data ;立即數“與”到直接位址

ORL A,Rn ;寄存器“或”到累加器

ORL A,direct ;直接位址“或”到累加器

ORL A,@Ri ;間接RAM“或”到累加器

ORL A,#data ;立即數“或”到累加器

ORL direct,A ;累加器“或”到直接位址

ORL direct, #data ;立即數“或”到直接位址

XRL A,Rn ;寄存器“異或”到累加器

XRL A,direct ;直接位址“異或”到累加器

XRL A,@Ri ;間接RAM“異或”到累加器

XRL A,#data ;立即數“異或”到累加器

XRL direct,A ;累加器“異或”到直接位址

XRL direct, #data ;立即數“異或”到直接位址

CLR A ;累加器清零

CPL A ;累加器求反

RL A ;累加器循環左移

RLC A ;帶進位累加器循環左移

RR A ;累加器循環右移

RRC A ;帶進位累加器循環右移

SWAP A ;累加器高、低4 位交換

(4)控制轉移類 17

JMP @A+DPTR ;相對DPTR 的無條件間接轉移

JZ rel ;累加器為0 則轉移

JNZ rel ;累加器為1 則轉移

CJNE A,direct,rel ;比較直接位址和累加器,不相等轉移

CJNE A,#data,rel ;比較立即數和累加器,不相等轉移

CJNE Rn,#data,rel ;比較寄存器和立即數,不相等轉移

CJNE @Ri,#data,rel ;比較立即數和間接RAM,不相等轉移

DJNZ Rn,rel ;寄存器減1,不為0 則轉移

DJNZ direct,rel ;直接位址減1,不為0 則轉移

NOP ;空操作,用于短暫延時

ACALL add11 ;絕對調用子程式

LCALL add16 ;長調用子程式

RET ;從子程式傳回

RETI ;從中斷服務子程式傳回

AJMP add11 ;無條件絕對轉移

LJMP add16 ;無條件長轉移

SJMP rel ;無條件相對轉移

(5)位操作類 17

CLR ;清進位位

CLR bit ;清直接尋址位

SETB C ;置位進位位

SETB bit ;置位直接尋址位

CPL C ;取反進位位

CPL bit ;取反直接尋址位

ANL C,bit ;直接尋址位“與”到進位位

ANL C,/bit ;直接尋址位的反碼“與”到進位位

ORL C,bit ;直接尋址位“或”到進位位

ORL C,/bit ;直接尋址位的反碼“或”到進位位

MOV C,bit ;直接尋址位傳送到進位位

MOV bit, C ;進位位位傳送到直接尋址

JC rel ;如果進位位為1 則轉移

JNC rel ;如果進位位為0 則轉移

JB bit,rel ;如果直接尋址位為1 則轉移

JNB bit,rel ;如果直接尋址位為0 則轉移

JBC bit,rel ;直接尋址位為1 則轉移并清除該位

繼續閱讀