
Встроенные микропроцессорные системы / ВстроенныеСистемы / mps12
.docЛекция 12
6.2. Система команд МК 8052
Система команд насчитывает 111 команд, из них 49 однобайтных, 45 двухбайтных и 17 трехбайтных.
Группа команд пересылки:
MOV A,Rn; (A) (Rn) регистровая адресация второго операнда
MOV A,addr; (A) (addr) прямая адресация второго операнда
MOV A,@Ri; (A) ((Ri)) i=0,1 косвенная адресация второго операнда
MOV A,#d ; (A) d непосредственная адресация второго операнда
MOV Rn,A; (Rn) (A)
MOV Rn,addr; (Rn) (addr)
MOV Rn,#d; (Rn) d
MOV addr,A; (addr) (A)
MOV addr1,addr2; (addr1) (addr2)
MOV addr,#d; (addr) d
MOV addr, Rn; (addr) (Rn)
MOV addr,@Ri; (addr) ((Ri)) i=0,1
MOV @Ri,A; ((Ri)) (A) i=0,1
MOV @Ri,addr; ((Ri)) (addr) i=0,1
MOV @Ri,#d; ((Ri)) d i=0,1
MOV DPTR,#d16; (DPTR) d16
MOVC A,@A+ DPTR; (A) ((A) + (DPTR)) пересылка из памяти ;программ
MOVC A,@A+PC; (PC) (PC)+1, (A) ((A) + (PC)) пересылка ;из памяти программ
MOVX A,@Ri; (A) ((Ri)) i=0,1 пересылка из внешней памяти ;данных первых 256 байт
MOVX @Ri,A; ((Ri)) (A) i=0,1 пересылка в первые 256 байт ;внешней памяти данных
MOVX A,@DPTR; (A) ((DPTR)) пересылка из внешней памяти ;данных из адреса, находящегося в DPTR
MOVX @DPTR,A; ((DPTR)) (A) пересылка во внешнюю память ;данных по адресу, находящемуся в DPTR
PUSH addr; (SP)= (SP)+1, ((SP)) (addr)
POP addr; (addr) ((SP)), (SP)= (SP)-1
XCH A,Rn ; (A) >(Rn)
XCH A, addr; (A) >(addr)
XCH A, @Ri; i=0,1 (A) >((Ri))
XCHD A, @Ri; i=0,1 (A0-3) >((Ri)0-3)
Группа комад арифметических операций:
ADD A,Rn; (A)(A)+(Rn)
ADD A,addr; (A)(A)+( addr)
ADD A,@Ri; (A)(A)+((Ri)), i=0,1
ADD A,#d; (A)(A)+d
ADDC A,Rn; (A)(A)+(Rn)+(C)
ADDC A,addr; (A)(A)+( addr) )+(C)
ADDC A,@Ri; (A)(A)+((Ri)) )+(C), i=0,1
ADDC A,#d; (A)(A)+d+(C)
DA A; десятичная коррекция аккумулятора
SUBB A,Rn; (A)(A)-(Rn)-(C)
SUBB A,addr; (A)(A)-( addr) )-(C)
SUBB A,@Ri; (A)(A)-((Ri)) )-(C), i=0,1
SUBB A,#d; (A)(A)-d-(C)
INC A; (A)(A)+1
INC Rn; (Rn)( Rn)+1
INC addr; (addr)( addr)+1
INC @Ri; ((Ri))((Ri))+1, i=0,1
INC DPTR; (DPTR)( DPTR)+1
DEC A; (A)(A)-1
DEC Rn; (Rn)( Rn)-1
DEC addr; (addr)( addr)-1
DEC @Ri; ((Ri))((Ri))-1, i=0,1
MUL AB; (B)(A)(A)*(B)
DIV AB; (A).(B)(A)/(B)
Группа комад логических операций:
ANL A,Rn; (A)(A)&(Rn)
ANL A,addr; (A)(A)&(addr)
ANL A,@Ri; (A)(A)&((Ri)), i=0,1
ANL A,#d; (A)(A)&d
ANL addr,A; (addr)(A)&(addr)
ANL addr,#d; (addr)d&(addr)
ORL A,Rn; (A)(A)|(Rn)
ORL A,addr; (A)(A)|(addr)
ORL A,@Ri; (A)(A)|((Ri)), i=0,1
ORL A,#d; (A)(A)|d
ORL addr,A; (addr)(A)|(addr)
ORL addr,#d; (addr)d|(addr)
XRL A,Rn; (A)(A) mod2 (Rn)
XRL A,addr; (A)(A) mod2 (addr)
XRL A,@Ri; (A)(A) mod2 ((Ri)), i=0,1
XRL A,#d; (A)(A) mod2 d
XRL addr,A; (addr)(A) mod2 (addr)
XRL addr,#d; (addr)d mod2 (addr)
CLR A; (A) 0
CPL A; (A) NOT(A)
RL A; (An+1)(An), n=0-6, (A0)(A7) циклический сдвиг влево
RR A; (An)(An+1), n=0-6, (A7)(A0) циклический сдвиг вправо
RLC A; (An+1)(An), n=0-6, (A0)(C), (C)(A7) циклический ;сдвиг влево
RRC A; (An)(An+1), n=0-6, (A7)(C), (C)(A0) циклический ;сдвиг вправо
SWAP A; (A0-3)>(A4-7)
Группа команд операций с битами:
CLR C; ( C) 0
CLR bit; ( bit) 0
SETB C; ( C) 1
SETB bit; ( bit) 1
CPL C; ( C) NOT( C)
CPL bit; (bit) NOT(bit)
ANL C, bit; ( C) ( C)&( bit)
ANL C, /bit; ( C) ( C)& NOT( bit)
ORL C, bit; ( C) ( C)|( bit)
ORL C, /bit; ( C) ( C)| NOT( bit)
MOV C, bit; ( C) ( bit)
MOV bit ,C; (bit) (C)
Группа команд передачи управления:
JMP addr16; (PC) addr16
JMP @A+DPTR; (PC) (A)+(DPTR)
JZ rel; (PC) (PC)+2, если (A)=0 то (PC) (PC)+rel
JNZ rel; (PC) (PC)+2, если (A)/=0 то (PC) (PC)+rel
JC rel; (PC) (PC)+2, если (C)=1 то (PC) (PC)+rel
JNC rel; (PC) (PC)+2, если (C)=0 то (PC) (PC)+rel
JB bit,rel; (PC) (PC)+3, если (bit)=1 то (PC) (PC)+rel
JNB bit,rel; (PC) (PC)+3, если (bit)=0 то (PC) (PC)+rel
JBC bit,rel; (PC)(PC)+3,если (bit)=1 то (PC) (PC)+rel и ;(bit)0
DJNZ Rn,rel; (PC) (PC)+2, (Rn) (Rn)-1, если (Rn)=0 то (PC) ;(PC)+rel
DJNZ addr,rel; (PC) (PC)+3, (addr) (addr)-1, если (addr)=0 то (PC) ;(PC)+rel
CJNE A,addr,rel; (PC) (PC)+3, если (A)/= (addr) то (PC) (PC)+rel, ;если (A)< (addr) то (C) 1 иначе (C) 0
CJNE A,#d,rel; (PC) (PC)+3, если (A)/= d то (PC) (PC)+rel
;если (A)< d то (C) 1 иначе (C) 0
CJNE Rn,#d,rel; (PC) (PC)+3, если (Rn)/= d то (PC) (PC)+rel
;если (Rn)< d то (C) 1 иначе (C) 0
CJNE @Ri,#d,rel; (PC) (PC)+3, если ((Ri))/= d то (PC) (PC)+rel
;если ((Ri))< d то (C) 1 иначе (C) 0
CALL addr16; (PC) (PC)+3, (SP) (SP)+1, ((SP)) ( PC0-7), ;(SP) (SP)+1, ((SP)) ( PC8-15), (PC) addr16
RET; (PC8-15) ((SP)) , (SP) (SP)-1, ( PC0-7) ((SP)) , ;(SP) (SP)-1
RETI; (PC8-15) ((SP)) , (SP) (SP)-1, ( PC0-7) ((SP)) , ;(SP) (SP)-1, разблокировка системы прерывания
NOP; пустая операция