Система команд включает 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