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

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

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

ИнструкцияC OV ACИнструкцияC OV AC
ADDX X XCLR CO
ADDCX X XCPL CX
SUBBX X XANL C, bitX
MULO XANL C,/bitX
DIVO XORL C, bitX
DAXORL C, bitX
RRCXMOV C, bitX
RLCXCJNEX
SETB C1

Замечание. Операции с регистром специальных функций с регистром 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.

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

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

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

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

ANL A, Rn(A) и (Rn) -> A Логическое побитовое И112
ANL A, direct(A) и (direct) -> A212
ANL A,@Ri(A) и ( (Ri) ) -> A112
ANL A,#data(A) и #data -> A212
ANL direct, A(direct) и (A) -> direct212
ANL direct,#data(direct) и #data -> direct324
ORL A, Rn(A) или (Rn) -> A Логическое побитовое ИЛИ112
ORL A, direct(A) или (direct) -> A212
ORL A,@Ri(A) или ( (Ri) ) -> A112
ORL A,#data(A) или #data -> A212
ORL direct, A(direct) или (A) -> direct212
ORL direct,#data(direct) или #data -> direct324
XRL A, Rn(A) ^ (Rn) -> A Логическое побитовое исключающее ИЛИ112
XRL A, direct(A) ^ (direct) -> A212
XRL A,@Ri(A) ^ ( (Ri) ) -> A112
XRL A,#data(A) ^ #data -> A212
XRL direct, A(direct) ^ (A) -> direct212
XRL direct,#data(direct) ^ #data -> direct324
CLR A00h -> A Обнуление112

Мнемоника

Содержание

Byte

Tact

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

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

MOV A, Rn(Rn) -> A112
MOV A, direct(direct) -> A212
MOV A,@Ri( (Ri) ) -> A112
MOV A,#data#data -> A212
MOV Rn, A(A) -> Rn112
MOV Rn, direct(direct) -> Rn224
MOV Rn,#data#data -> Rn212
MOV direct, A(A) -> direct212
MOV direct, Rn(Rn) -> direct224
MOV direct, direct(direct) -> direct324
MOV direct,@Ri( (Ri) ) -> direct224
MOV direct,#data#data -> direct324
MOV @Ri, A(A) -> (Ri)112
MOV @Ri, direct(direct) -> (Ri)224
MOV @Ri,#data#data -> (Ri)212
MOV DPTR,#data16#data16 -> DPTR324
MOVC A,@A+DPTR( ( A) + ( DPTR ) ) -> A Обмен с внешне памятью программ124
MOVC A,@A+PC( ( A) + ( PC ) ) -> A124
MOVX A,@Ri( ( Ri) ) -> A Обмен с внешней памятью данных124
MOVX A,@DPTR( ( DPTR ) ) -> A124
MOVX @Ri, A(A) -> ( Ri)124
MOVX @DPTR, A(A) -> ( DPTR )124
PUSH direct(direct) -> Stack Запись в стек224
POP direct(Stack) -> direct Извлечение из стека224
XCH A, Rn

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

112
XCH A, direct

(A) (direct)

212
XCH A,@Ri

(A) ( (Ri) )

112
XCHD A,@Ri

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

112

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

CLR C0 -> с112
CLR bit0 -> bit212
SETB C1 -> c112
SETB bit1 -> bit212
CPL CNot(c) -> c112
CPL bitNot(bit) -> bit212
ANL C, bit( с ) и (bit) -> c224
ANL C,/bit( c ) и not(bit) -> c224
ORL C, bit( c ) или (bit) -> c224
ORL C,/bit( c ) или not(bit) -> c224
MOV C, bit(bit) -> c212
MOV bit, C( c ) -> bit224
JC relЕсли с = 1 , то переход по смещению rel224
JNC relЕсли с = 0 , то переход по смещению rel224
JB bit, relЕсли bit = 1 , то переход по смещению rel324
JNB bit, relЕсли bit = 0 , то переход по смещению rel324
JBC bit, relЕсли bit = 1 , то переход по смещению rel и сброс bit324

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

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

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

112

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...
Микроконтроллеры семейства MCS51 Intel