Скачиваний:
85
Добавлен:
13.03.2016
Размер:
67.07 Кб
Скачать

Лекция 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; пустая операция

Соседние файлы в папке ВстроенныеСистемы