Инструкции 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
Нашли опечатку? Выделите и нажмите CTRL+Enter