Система команд включает 111 команд - однобайтовых (49), двухбайтовых (45) и трехбайтовых (17). Все команды выполняются за 1 или 2 МЦ (12 тактов CLK), за исключением команд умножения и деления MUL и DIV, для выполнения которых требуется 4 МЦ. Большинство двухбайтовых команд - одноцикловые, а все трехбайтовые двухцикловые. За один МЦ в..ВЕ52 можно вводить до двух байтов программного кода.
В микро-ЭВМ предусмотрена прямая (direct), косвенная (через R0, R1 или DPTR) и непосредственная (# data) адресация элементов DSEG и RSEG, прямая адресация элемента BSEG, косвенная (через R0, R1 или DPTR) адресация XSEG.
Все множество команд разбито на 5 групп: пересылки (28), логические (25), арифметические (24), передачи управления (17) и битового процессора (17).
В Табл. 11.4 – Табл. 11.7 приведены мнемокоды команд, длина команды в МЦ, HEX-коды и описание команды. В таблицах использованы следующие обозначения:
A,B
- аккумулятор, дополнительный аккумулятор;
Rn
- регистр общего назначения (n = 0..7);
@Ri
- косвенный адрес через Ri (i = 0,1);
direct
- прямой адрес DSEG (8 бит);
#data
- непосредственный операнд длиной 8 бит;
#data16
- непосредственный операнд длиной 16 бит;
addr11
- адрес перехода длиной 11 бит;
addr16
- адрес перехода длиной 16 бит;
rel
- смещение на странице CSEG длиной 8 бит;
bit
- прямой адрес BSEG (номер бита).
В командах возможны следующие варианты формирования признаков
[1] - P
[2] - CY, P
[3] - CY, AC, OV, P
[4] - OV, P, CY ¬ 0
[5] - CY
В Табл. 11.4 – Табл. 11.7 в описании команд указаны соответствующие обозначения. Отсутствие обозначения говорит о том, что данная команда не меняет значений признаков. Символ в фигурных скобках означает, что он относится ко всем командам блока.
Табл. 11.4. Команды пересылки
Мнемокод
МЦ
HEX-коды
Описание команды
MOV A, Rn
E8.. EF
A ¬ Rn
MOV A, direct
E5
A ¬ (direct)
MOV A, @Ri
E6.. E7
A ¬ (Ri)
MOV A, #data
A ¬ data
MOV Rn, A
F8.. FF
Rn ¬ A
MOV Rn, direct
A8.. AF
Rn ¬ (direct)
MOV Rn, #data
78.. 7F
Rn ¬ data
MOV direct, A
F5
(direct) ¬ A
MOV direct, Rn
88.. 8F
(direct) ¬ Rn
MOV direct, direct
(direct) ¬ (direct)
MOV direct, @Ri
86.. 87
(direct) ¬ (Ri)
MOV direct, #data
(direct) ¬ data
MOV @Ri, A
F6.. F7
(Ri) ¬ A
MOV @Ri, direct
A6.. A7
(Ri) ¬ (direct)
MOV @Ri, #data
76.. 77
(Ri) ¬ data
MOV DPTR, #data16
DPTR ¬ data16
MOVC A,@A+DPTR
A ¬ CSEG(A+DPTR)
MOVC A,@A+PC
A ¬ CSEG(A+PC)
MOVX A, @Ri
E2.. E3
A ¬ XSEG(P2.Ri)
MOVX A, @DPTR
E0
A ¬ XSEG(DPTR)
MOVX @Ri, A
F2.. F3
XSEG (P2.Ri) ¬ A
MOVX @DPTR, A
F0
XSEG (DPTR) ¬ A
PUSH direct
C0
+(SP) ¬ (direct)
POP direct
D0
(direct) ¬ (SP)-
XCH A, Rn
C8.. CF
A «Rn
XCH A, direct
C5
A «(direct)
XCH A, @Ri
C6.. C7
A «(Ri)
XCHD A, @Ri
D6.. D7
A[3:0] «(Ri[3:0])
Табл. 11.5. Логические и арифметические команды
Мнемокод
МЦ
HEX-коды
Описание команды
ANL A, Rn
58.. 5F
A ¬ A & Rn
ANL A, direct
A ¬ A & (direct)
ANL A, @Ri
56.. 57
A ¬ A & (Ri)
ANL A, #data
A ¬ A & data
ANL direct, A
(direct) ¬ (direct) & A
ANL direct, #data
(direct) ¬ (direct) & data
ORL A, Rn
48.. 4F
A ¬ A Ú Rn
ORL A, direct
A ¬ A Ú (direct)
ORL A, @Ri
46.. 47
A ¬ A Ú (Ri)
ORL A, #data
A ¬ A Ú data
ORL direct, A
(direct) ¬ (direct) Ú A
ORL direct, #data
(direct) ¬ (direct) Ú data
XRL A, Rn
68.. 6F
A ¬ A Å Rn
XRL A, direct
A ¬ A Å (direct)
XRL A, @Ri
66.. 67
A ¬ A Å (Ri)
XRL A, #data
A ¬ A Å data
XRL direct, A
(direct) ¬ (direct) Å A
XRL direct, #data
(direct) ¬ (direct) Å data
CLR A
E4
A ¬ 0000 0000 (Очистка акк.)
CLP A
F4
A ¬ A (Инверсия аккумулятора)
RL A
Сдвиг левый циклический
RLC A
Сдвиг левый с переносом
RR A
Сдвиг правый циклический
RRC A
Сдвиг правый с переносом
SWAP A
C4
A[7:4] «A[3:0]
ADD A, Rn
28.. 2F
A ¬ A + Rn
ADD A, direct
A ¬ A + (direct)
ADD A, @Ri
26.. 27
A ¬ A + (Ri)
ADD A, #data
A ¬ A + data
ADDC A, Rn
38.. 3F
A ¬ A + Rn + CY
ADDC A, direct
A ¬ A + (direct) + CY
ADDC A, @Ri
36.. 37
A ¬ A + (Ri) + CY
ADDC A, #data
A ¬ A + data + CY
SUBB A, Rn
98.. 9F
A ¬ A - Rn - CY
SUBB A, direct
A ¬ A - (direct) - CY
SUBB A, @Ri
96.. 97
A ¬ A - (Ri) - CY
SUBB A, #data
A ¬ A - data - CY
INC A
A ¬ A + 1
INC Rn
08.. 0F
Rn ¬ Rn + 1
INC direct
(direct) ¬ (direct) + 1
INC @Ri
06.. 07
(Ri) ¬ (Ri) + 1
INC DPTR
A3
DPTR ¬ DPTR + 1
DEC A
A ¬ A - 1
DEC Rn
18.. 1F
Rn ¬ Rn - 1
DEC direct
(direct) ¬ (direct) - 1
DEC @Ri
16.. 17
(Ri) ¬ (Ri) - 1
MUL AB
A4
B.A ¬ A × B
DIV AB
A.B ¬ A: B
DA A
Десятичная коррекция сложения
Табл. 11.6. Команды передачи управления
Мнемокод
МЦ
HEX-коды
Описание команды
ACALL addr11
aaa10001
+(SP) ¬ PC; PC[10:0] ¬ adrr11
LCALL addr16
+(SP) ¬ PC; PC ¬ adrr16
RET
PC ¬ (SP)-
RETI
PC ¬ (SP)-; конец прерывания
AJMP addr11
aaa00001
PC[10:0] ¬ adrr11
LJMP addr16
PC ¬ adrr16
JMP @A + DPTR
PC ¬ DPTR +A
SJMP rel
PC ¬ PC + rel
JZ rel
if A = 0 then PC ¬ PC + rel
JNZ rel
if A ¹ 0 then PC ¬ PC + rel
CJNE A, direct, rel
B5
if A ¹ (direct) then PC ¬ PC + rel
CJNE A, #data, rel
B4
if A ¹ data then PC ¬ PC + rel
CJNE Rn, #data, rel
B8.. BF
if Rn ¹ data then PC ¬ PC + rel
CJNE @Ri,#data, rel
B6.. B7
if (Ri) ¹ data then PC ¬ PC + rel
CJNZ Rn,rel
D8.. DF
Rn ¬ Rn - 1
if Rn ¹ 0 then PC ¬ PC + rel
CJNE direct, rel
D5
(direct) ¬ (direct) - 1
if (direct) ¹ 0 then PC ¬ PC + rel
NOP
Табл. 11.7. Булевые команды
Мнемокод
МЦ
HEX-коды
Описание команды
MOV C, bit
A9
CY ¬ BSEG(bit)
MOV bit, C
BSEG(bit) ¬ CY
CLR C
C3
CY ¬ 0
CLR bit
C2
BSEG(bit) ¬ 0
SETB C
D3
CY ¬ 1
SETB bit
D2
BSEG(bit) ¬ 1
CPL C
B3
CY ¬ CY
CPL bit
B2
BSEG(bit) ¬ BSEG(bit)
ANL C, bit
CY ¬ CY & BSEG(bit)
ANL C, bit
B0
CY ¬ CY & BSEG(bit)
ORL C, bit
CY ¬ CY Ú BSEG(bit)
ORL C, bit
A0
CY ¬ CY Ú BSEG(bit)
JC rel
if CY = 1 then PC ¬ PC + rel
JNC rel
if CY = 0 then PC ¬ PC + rel
JB bit, rel
if BSEG(bit) = 1
then PC ¬ PC + rel
JNB bit, rel
if BSEG(bit) = 0
then PC ¬ PC + rel
JBC bit, rel
if BSEG(bit) = 1 then
PC ¬ PC + rel и BSEG(bit) ¬ 0
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав!Последнее добавление