;操作碼 操作數← 說明 字節數
;一、 數據傳送、交換、棧出入類(29條)
MOV A,Rn ;寄存器傳送至累加器 1
MOV A,direct ;直接字節送累加器 2
MOV A,@Ri ;間接RAM送累加器 1
MOV A,#data ;立即數送累加器 2
MOV Rn,A ;累加器送寄存器 1
MOV Rn,direct ;直接字節送寄存器 2
MOV Rn,#data ;立即數送寄存器 2
MOV direct,A ;累加器送直接字節 2
MOV direct,Rn ;寄存器送直接字節 2
MOV direct,direct ;直接字節送直接字節 2
MOV direct,@Ri ;間接RAM送直接字節 2
MOV direct,#data ;立即數據送直接字節 2
MOV @Ri,A ;累加器送間接RAM 1
MOV @Ri,direct ;直接字節送間接RAM 2
MOV @Ri,#data ;立即數據送間接RAM 2
MOV DPTR,#datal6 ;數據指針中裝入16位常數 3
MOVC A,@A+DPTR ;相對于DPTR的代碼字節送A 1
MOVC A,@A+PC ;相對于PC的代碼字節送A 1
MOVX A,@Ri ;外部RAM(8位地址)送A 1
MOVX A,@DPTR ;外部RAM(16位地址)送A 1
MOVX @Ri,A ;A送外部RAM(8位地址) 1
MOVX @DPTR,A ;A送外部RAM(16位地址) 1
PUSH direct ;直接字節入棧 2
POP direct ;直接字節出棧 2
XCH A,Rn ;寄存器和累加器交換 1
XCH A,direct ;直接字節和累加器交換 2
XCH A,@Ri ;間接RAM和A交換 1
XCHD A,@Ri ;間接RAM和累加器交換低4位 1
SWAP A ;累加器左右半字節交換 1
;
;二、算術運算類(24條)
ADD A,Rn ;寄存器加入累加器 1
ADD A,direct ;直接字節加入累加器 2
ADD A,@Ri ;間接RAM與累加器相加 1
ADD A,#data ;立即數據與累加器相加 2
ADDC A,Rn ;有進位的寄存器與累加器相加 1
ADDC A,direct ;帶進位的直接字節與A相加 2
ADDC A,@Ri ;帶進位的間接RAM與A相加 1
ADDC A,#data ;帶進位的立即數與A相加 2
SUBB A,Rn ;帶借位的A減去寄存器 1
SUBB A,direct ;帶借位的A減去寄存器直接字節 2
SUBB A,@Ri ;帶借位的A減去間接RAM 1
SUBB A,#data ;帶借位的A減去立即數 2
INC A ;累加器加1 1
INC Rn ;寄存器加1 1
INC direct ;直接字節加1 2
INC @Ri ;間接RAM加1 1
INC DPTR ;數據指針字加1 1
DEC A ;累加器減1 1
DEC Rn ;寄存器減1 2
DEC direct ;直接字節減1 1
DEC @Ri ;間接字節RAM減1 1
MUL AB ;A與B相乘(結果高字在B) 1
DIV AB ;A除以B 1
DA A ;十進制調整累加器 1
;
;三、邏輯操作類(24條)
ANL A,Rn ;"寄存器""與""到累加器" 1
ANL A,direct ;"地址字節""與""到累加器" 2
ANL A,@Ri ;"間接RAM""與""到累加器" 1
ANL A,#data ;"立即數""與""到累加器" 2
ANL direct,A ;"累加器""與""到直接字節" 2
ANL direct,#data ;"立即數據""與""到直接字節" 3
ORL A,Rn ;"寄存器""或""到累加器" 1
ORL A,direct ;"直接字節""或""到累加器" 2
ORL A,@Ri ;"間接RAM""或""到累加器" 1
ORL A,#data ;"立即數據""或""到累加器" 2
ORL direct,A ;"累加器""或""到直接字節" 2
ORL direct,#data ;"立即數據""或""到直接字節" 3
XRL A,Rn ;"寄存器""異或""到累加器" 1
XRL A,direct ;"直接字節""異或""到累加器" 2
XRL A,@Ri ;"間接RAM""異或""到A" 1
XRL A,#data ;"立即數""異或""到A" 2
XRL direct,A ;"累加器""異或""到直接字節" 2
XRL direct,#data ;"立即數""異或""到直接字節" 3
CLR A ;清累加器 1
CPL A ;累加器取反 1
RL A ;累加器左環移 1
RLC A ;A以進位標志左環移 1
RR A ;累加器右環移 1
RRC A ;A以進位標志右環移 1
;
;四、位變量處理類(12條)
CLR C ;清進位標志 1
CLR bit ;清直接尋址位 2
SETB C ;進位位置位 1
SETB bit ;直接尋址位置位 2
CPL C ;進位位取反 1
CPL bit ;直接尋址位取反 2
ANL C,bit ;"直接尋址位""與""到迸位位" 2
ANL C,/bit ;"直接尋址位的反碼""與""到進位位" 2
ORL C,bit ;"直接尋址位""或""到進位位" 2
ORL C,/bit ;"直接尋址位的反碼""或""到迸位位" 2
MOV C,bit ;直接尋址位傳迭到進位位 2
MOV bit,C ;進位位傳送到直接尋址位 2
;
;五、控制和轉移類(22條)
ACALL addr11 ;絕對子程序調用 2
LCALL addr16 ;長子程序調用 3
RET ;從子程序返回 1
RETI ;從中斷返回 1
AJMP addr11 ;絕對轉移 3
LJMP addr16 ;長轉移 2
SJMP rel ;短轉移(相對轉移) 1
JMP @A+DPTR ;相對于DPTR的間接轉移 2
JZ rel ;累加器為零轉移 2
JNZ rel ;累加器為非零轉移 2
JC rel ;進位位為1轉移 2
JNC rel ;進位位為零轉移 2
JB bit,rel ;直接尋址位為1轉移 3
JNB bit,rel ;直接尋址位為零轉移 3
JBC bit,reI ;直接尋址位為1轉移并清除訪位 3
CJNE A,direct,rel ;直接位同A比較不等則轉移,A大C置1 3
CJNE A,#datal,rel ;立即數同A比較不等則轉移 3
CJNE Rn,#data,rel ;立即數同RAM比較,不等則轉移 3
CJNE @Ri,#data,rel ;立即數同間接RAM比較,不等則轉移 3
DJNZ Rn,rel ;寄存器減1,非零則轉移 3
DJNZ direct,rel ;直接字節減1,非零則轉移 3
NOP ;空操作 1
;29+24+24+12+22=111條.
;addr11或addr16:11位或16位地址(2K,64K),用標號代替.
;rel:偏移量地址,用標號代替.
;direct:直接字節(00H-7FH).
;PWS
|