Реферат: Микроконтроллеры семейства 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 непосредственная константа, включенная в инструкцию.
#data16 16-bit непосредственная константа, включеннаяв инструкцию.
addr16 16-bit адрес длинного перехода, используемыйкомандами LCALL и LJMP.
addr11 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