Реферат: Микроконтроллеры семейства MCS51 Intel

Инструкции MCS51TM Intel

Инструкции, модифицирующие флаги (1)

Инструкция C OV AC Инструкция C OV AC
ADD X X X CLR C O
ADDC X X X CPL C X
SUBB X X X ANL C,bit X
MUL O X ANL C,/bit X
DIV O X ORL C,bit X
DA X ORL C, bit X
RRC X MOV C,bit X
RLC X CJNE X


SETB C 1

Замечание. Операции с регистром специальных функций с регистром PSW или с его битами также модифицируют флаги.

Условные обозначения операндов:

Rn Регистр R7-R0 текущего банка рабочих регистров

direct 8-bit прямой адрес. Это может быть ячейка внутреннего ОЗУ данных (0-7F h) или SFR (7Fh - 0FFh).

@Ri 8-bit косвенный адрес внутреннего ОЗУ (00 - 0ffh) равен содержимому указателя R0 или R1.

#data 8-bit непосредственная константа, включенная в инструкцию.

#data 16 16-bit непосредственная константа, включенная в инструкцию.

addr 16 16-bit адрес длинного перехода, используемый командами LCALL и LJMP.

addr 11 11-bit адрес относительного перехода, используемый командами ACALL и AJMP.

rel 8-bit смещение со знаком, используемое командой SJMP и командами условных переходов.

bit Прямой адрес бита внутреннего ОЗУ или SFR.

Таблица 1. Список инструкций MCS51TM Intel.

Мнемоника Содержание Byte Tact

1. Арифметические операции.

ADD A,Rn (A) + (Rn) -> A Сложение 1 12
ADD A,direct (A) + (direct) -> A 2 12
ADD A,@Ri (A) + ( (Ri) ) -> A 1 12
ADD A,#data (A) + #data -> A 2 12
ADDC A,Rn (A) + (Rn) + c -> A Сложение с учетом переноса 1 12
ADDC A,direct (A) + (direct) + c -> A 2 12
ADDC A,@Ri (A) + ( (Ri) ) + c -> A 1 12
ADDC A,#data (A) - #data - c -> A 2 12
SUBB A,Rn (A) - (Rn) - c -> A Вычитание с учетом заема 1 12
SUBB A,direct (A) - (direct) - c -> A 2 12
SUBB A,@Ri (A) - ( (Ri) ) - c -> A 1 12
SUBB A,#data (A) - #data - c -> A 2 12
INC A (A) + 1 -> A Инкремент ( увеличение на единицу ) 1 12
INC Rn (Rn) + 1 -> Rn 1 12
INC direct (direct) + 1 -> direct 2 12
INC @Ri ( (Ri) ) + 1 -> ( Ri ) 1 12
INC DPTR (DPTR) + 1 -> DPTR 1 24
DEC A (A) - 1 -> A Декремент ( уменьшение на единицу ) 1 12
DEC Rn (Rn) - 1 -> Rn 1 12
DEC direct (direct) - 1 -> direct 2 12
DEC @Ri ( (Ri) ) - 1 -> ( Ri ) 1 12
MUL AB (A) * (B) -> AB Умножение (AB - произведение) 1 48
DIV AB (A) / (B) -> AB Деление (A - частное B - остаток) 1 48
DA A Десятичная коррекция аккумулятора 1 12

2. Логические операции.

ANL A,Rn (A) и (Rn) -> A Логическое побитовое И 1 12
ANL A,direct (A) и (direct) -> A 2 12
ANL A,@Ri (A) и ( (Ri) ) -> A 1 12
ANL A,#data (A) и #data -> A 2 12
ANL direct,A (direct) и (A) -> direct 2 12
ANL direct,#data (direct) и #data -> direct 3 24
ORL A,Rn (A) или (Rn) -> A Логическое побитовое ИЛИ 1 12
ORL A,direct (A) или (direct) -> A 2 12
ORL A,@Ri (A) или ( (Ri) ) -> A 1 12
ORL A,#data (A) или #data -> A 2 12
ORL direct,A (direct) или (A) -> direct 2 12
ORL direct,#data (direct) или #data -> direct 3 24
XRL A,Rn (A) ^ (Rn) -> A Логическое побитовое исключающее ИЛИ 1 12
XRL A,direct (A) ^ (direct) -> A 2 12
XRL A,@Ri (A) ^ ( (Ri) ) -> A 1 12
XRL A,#data (A) ^ #data -> A 2 12
XRL direct,A (direct) ^ (A) -> direct 2 12
XRL direct,#data (direct) ^ #data -> direct 3 24
CLR A 00h -> A Обнуление 1 12

Мнемоника

Содержание

Byte

Tact

CPL A not (A) -> A Инверсия 1 12
RL A Циклический сдвиг аккумулятора влево на один бит 1 12
RLC A Циклический сдвиг аккумулятора влево на один бит через бит переноса 1 12
RR A Циклический сдвиг аккумулятора вправо на один бит 1 12
RRC A Циклический сдвиг аккумулятора вправо на один бит через бит переноса 1 12
SWAP A Обмен тетрадами в аккумуляторе 1 12

3. Пересылка данных.

MOV A,Rn (Rn) -> A 1 12
MOV A,direct (direct) -> A 2 12
MOV A,@Ri ( (Ri) ) -> A 1 12
MOV A,#data #data -> A 2 12
MOV Rn,A (A) -> Rn 1 12
MOV Rn,direct (direct) -> Rn 2 24
MOV Rn,#data #data -> Rn 2 12
MOV direct,A (A) -> direct 2 12
MOV direct,Rn (Rn) -> direct 2 24
MOV direct,direct (direct) -> direct 3 24
MOV direct,@Ri ( (Ri) ) -> direct 2 24
MOV direct,#data #data -> direct 3 24
MOV @Ri,A (A) -> (Ri) 1 12
MOV @Ri,direct (direct) -> (Ri) 2 24
MOV @Ri,#data #data -> (Ri) 2 12
MOV DPTR,#data16 #data16 -> DPTR 3 24
MOVC A,@A+DPTR ( ( A) + ( DPTR ) ) -> A Обмен с внешне памятью программ 1 24
MOVC A,@A+PC ( ( A) + ( PC ) ) -> A 1 24
MOVX A,@Ri ( ( Ri) ) -> A Обмен с внешней памятью данных 1 24
MOVX A,@DPTR ( ( DPTR ) ) -> A 1 24
MOVX @Ri,A (A) -> ( Ri) 1 24
MOVX @DPTR,A (A) -> ( DPTR ) 1 24
PUSH direct (direct) -> Stack Запись в стек 2 24
POP direct (Stack) -> direct Извлечение из стека 2 24
XCH A,Rn

(A) <- > (Rn) Обмен содержимым

1 12
XCH A,direct

(A) <- > (direct)

2 12
XCH A,@Ri

(A) <- > ( (Ri) )

1 12
XCHD A,@Ri

(A) <- > ( (Ri) ) Обмен младшей тетрадой

1 12

4. Битовые операции.

CLR C 0 -> с 1 12
CLR bit 0 -> bit 2 12
SETB C 1 -> c 1 12
SETB bit 1 -> bit 2 12
CPL C not(c) -> c 1 12
CPL bit not(bit) -> bit 2 12
ANL C,bit ( с ) и (bit) -> c 2 24
ANL C,/bit ( c ) и not(bit) -> c 2 24
ORL C,bit ( c ) или (bit) -> c 2 24
ORL C,/bit ( c ) или not(bit) -> c 2 24
MOV C,bit (bit) -> c 2 12
MOV bit,C ( c ) -> bit 2 24
JC rel если с = 1 , то переход по смещению rel 2 24
JNC rel если с = 0 , то переход по смещению rel 2 24
JB bit,rel если bit = 1 , то переход по смещению rel 3 24
JNB bit,rel если bit = 0 , то переход по смещению rel 3 24
JBC bit,rel если bit = 1 , то переход по смещению rel и сброс bit 3 24

5. Команды передачи управления.

ACALL addr11 Вызов процедуры по адресу addr11 2 24
LCALL addr16 Вызов процедуры по адресу addr16 3 24
RET Возврат из процедуры 1 24
RETI Возврат из процедуры обработки прерывания 1 24
AJMP addr11 Безусловный переход по адресу addr11 2 24
LJMP addr16 Безусловный переход по адресу addr16 3 24
SJMP rel Безусловный переход по смещению rel 2 24
JMP @A+DPTR Безусловный переход по смещению (A) относительно (DPTR) 1 24
JZ rel Условный переход, если равно 0, по смещению rel 2 24
JNZ rel Условный переход, если не равно 0, по смещению rel 2 24
CJNE A,direct,rel Условный переход, если (A) не равно (direct), по смещению rel 3 24
CJNE A,#data,rel Условный переход, если (A) не равно #data, по смещению rel 3 24
CJNE Rn,#data,rel Условный переход, если (Rn) не равно #data, по смещению rel 3 24
CJNE @Ri,#data,rel Условный переход, если ( (Ri) ) не равно #data, по смещению rel 3 24
DJNZ Rn,rel Декремент Rn и условный переход, если не равно 0, по смещению rel 2 24
DJNZ direct,rel Декремент direct и условный переход, если не равно 0, по смещению rel 3 24
NOP

Пустой оператор.

1 12