Структура кода команды
| Байты
| Циклы
| Такты
| Выполняемая операция
| Мнемоника
| Признаки
|
Z
| S
| C
| V
| P
|
|
|
|
| 1. Команды пересылки
|
|
|
|
|
|
|
01rirj
|
| 1/3
| 5/7
| 1. 1. Регистр-регистр
riß(rj)
|
MOV ri rj
|
-
|
-
|
-
|
-
|
-
|
00ri110
|
| 2/3
| 7/
| 2.Непосредственная пересылка
riß<B2>
| MVI ri, <B2>
| -
| -
| -
| -
| -
|
00ri001
|
|
|
| 3. Непосредственная загрузка пары регистров
riß<B3>; ri+1ß<B2>
при ri=110: SPß<B3><B2>
| LXI ri
| -
| -
| -
| -
| -
|
00K1010
|
|
|
| 4. Запоминание / загрузка А и HL
K1
| Операция
|
| [(BC)]ß(A)
|
| [(DE)]ß(A)
|
| Aß[(BC)]
|
| Aß[(DE)]
|
| [<B3><B2>]ß(A)
|
| Aß[<B3><B2>]
|
| [<B3><B2>]ß(L);
[<B3><B2>+1]ß(H);
|
| Lß[<B3><B2>];
Hß[<B3><B2>+1]
|
|
STAX B
STAX D
LDAX B
LDAX D
STA
LDA
SHLD
LHLD
|
-
-
-
-
-
-
-
-
|
-
-
-
-
-
-
-
-
|
-
-
-
-
-
-
-
-
|
-
-
-
-
-
-
-
-
|
-
-
-
-
-
-
-
-
|
11ri101
|
|
|
| 5. Ввод из пар регистров в стек
[SP-1]ß(ri);
[SP-2]ß(ri+1);
SPß(SP)-2
|
PUCH ri
| -
| -
| -
| -
| -
|
|
|
|
| 6. Ввод (А) и (F) в стек
[SP-1]ß(А);
[SP-2]ß(F);
SPß(SP)-2
|
PUCH
PSW
| -
| -
| -
| -
| -
|
11ri001
|
|
|
| 7. Вывод из стека в пары регистров:
ri+1ß[SP]; riß[SP+1];
SPß(SP)+2
|
POP ri
| -
| -
| -
| -
| -
|
|
|
|
| 8. Вывод (А) и (F) из стека
Fß[SP]; Aß[SP+1];
SPßSP+2
|
POP
PSW
| +
| +
| +
| +
| +
|
|
|
|
| 9. Обмен между DE и HL
(H)ßà(D); (L)ßà(E)
| XCH D
| -
| -
| -
| -
| -
|
|
|
|
| 10. Обмен вершин стека с H. (L)ßà[SP];
(H)ßà [SP+1]
| XT H L
| -
| -
| -
| -
| -
|
|
|
|
| 11. Пересылка (HL) в указатель стека.
SPß(HL)
| SPHL
| -
| -
| -
| -
| -
|
|
|
|
| 12.Пересылка (HL) в счетчик команд.
PCß(HL)
| PC HL
| -
| -
| -
| -
| -
|
|
|
|
| II. Приращение / отрицательное приращение
|
|
|
|
|
|
|
00ri100
|
| 1/3
| 5/
| 1. Приращение регистра
riß(ri)+1
| INP ri
| +
| +
| -
| +
| +
|
00ri101
|
| 1/3
| 5/
| 2. Отрицательное приращение регистра
riß(ri)-1
| DCP ri
| +
| +
| -
| +
| +
|
00ri011
|
|
|
| 3. Приращение пары регистров
ri, ri+1ß(ri)(ri+1)+1
При ri=100 – приращение SP
| INX ri
| -
| -
| -
| -
| -
|
00ri011
|
|
|
| 4. Отрицательное приращение пары регистров
ri –1, riß(ri –1)(ri) – 1
При ri=111 – отрицательное приращение SP
| DCX ri –1
| -
| -
| -
| -
| -
|
|
|
|
| III. Арифметические и логические операции
|
|
|
|
|
|
|
10К2ri
|
|
1/2
|
4/7
| 1. Над (А) и (r).
Aß(A)*(ri),
* - операция (К2)
К2
| Операция
|
| Aß(A) +(ri)
|
| Aß(A)+(ri)+(TC)
|
| Aß(A) -(ri)
|
| Aß(A)-(ri)-(TC)
|
| Aß(A) Ù(ri)
|
| Aß(A) " (ri)
|
| Aß(A) Ú (ri)
|
| (A) - (ri), сравнение
|
|
ADD ri
ADC ri
SUB ri
SBB ri
ANA ri
XRA ri
ORA ri
CMP ri
|
+
+
+
+
+
+
+
+
|
+
+
+
+
+
+
+
+
|
+
+
+
+
+
|
+
+
+
+
+
|
+
+
+
+
+
+
+
+
|
00ri001
|
|
|
| 2. Сложение содержимого пар регистров
HLß(HL)+ (ri –1 )(ri), при
ri=111-HLß(HL)+(SP)
|
DAD ri –1
|
-
|
-
|
+
|
-
|
-
|
11К2110
|
|
|
| 3. Операции с непосредственной адресацией
Аß(А)*<B2>, где
* - операция, определяемая К2
К2
| Операция
|
| Aß(A) +<B2>
|
| Aß(A)+<B2>+(TC)
|
| Aß(A) -<B2>
|
| Aß(A)-<B2>-(TC)
|
| Aß(A) Ù<B2>
|
| Aß(A) "<B2>
|
| Aß(A) Ú<B2>
|
| (A) -<B2>, сравнение
|
|
ADI
ACI
SUI
SBI
ANI
XRI
ORI
CPI
|
+
+
+
+
+
+
+
+
|
+
+
+
+
+
+
+
+
|
+
+
+
+
+
|
+
+
+
+
+
|
+
+
+
+
+
+
+
+
|
00K3111
|
|
|
| IV. Операции циклического сдвига
К3
| Операция
|
| Am+1ß(Am); A0ß(A7);
TCß(A7)
|
| Am ß (Am+1);
A7 ß(A0);
TCß(A0)
|
| Am+1ß(Am); A0ß(TC);
TCß(A7)
|
| Am ß (Am+1);
A7 ß(TC);
TCß(A0)
|
|
RLC
RRC
RAL
RAR
|
-
-
-
-
|
-
-
-
-
|
+
+
+
+
|
-
-
-
-
|
-
-
-
-
|
|
|
|
| V. Операции переходов
|
|
|
|
|
|
|
|
|
|
| 1. Безусловный переход
PCß<B3><B2>
|
JMP
|
-
|
-
|
-
|
-
|
-
|
11K4010
|
|
|
| 2. Условные переходы
К4
| Вид перехода
|
| Если (ТZ)=0, PCß<B3><B2>. Иначе PCß(PC)+3
|
| Если (ТZ)=1, - // -
|
| Если (ТC)=0, - // -
|
| Если (ТC)=1, - // -
|
| Если (ТP)=0, - // -
|
| Если (ТP)=1, - // -
|
| Если (ТS)=0, - // -
|
| Если (ТS)=1, - // -
|
|
JNZ
JZ
JNC
JC
JPO
JPE
JP
JM
|
-
-
-
-
-
-
-
-
|
-
-
-
-
-
-
-
-
|
-
-
-
-
-
-
-
-
|
-
-
-
-
-
-
-
-
|
-
-
-
-
-
-
-
-
|
|
|
|
| 3. Вызов безусловный
[SP-1][SP-2]ß(PC), SPß(SP)-2, PCß<B3><B2>
|
CALL
|
-
|
-
|
-
|
-
|
-
|
11K5100
|
|
3/5
|
11/17
| 4. Вызов программы условный
К5
| Вид перехода
|
| Если (ТZ)=0, [SP-1][SP-2]ß(PC), SPß(SP)-2, PCß<B3><B2>. Иначе PCß(PC)+3
|
| Если (ТZ)=1, - // -
|
| Если (ТC)=0, - // -
|
| Если (ТC)=1, - // -
|
| Если (ТP)=0, - // -
|
| Если (ТP)=1, - // -
|
| Если (ТS)=0, - // -
|
| Если (ТS)=1, - // -
|
|
CNZ
CZ
CNC
CC
CPO
CPE
CP
CM
|
-
-
-
-
-
-
-
-
|
-
-
-
-
-
-
-
-
|
-
-
-
-
-
-
-
-
|
-
-
-
-
-
-
-
-
|
-
-
-
-
-
-
-
-
|
|
|
|
| 5. Возврат из программы
PCß[SP][SP+1], SPß(SP)+2
|
RET
|
-
|
-
|
-
|
-
|
-
|
11K6000
|
|
1/3
|
5/11
| 6. Условный возврат из подпрограммы
К6
| Вид перехода
|
| Если (ТZ)=0, PCß[SP][SP+1], SPß(SP)+2, Иначе PCß(PC)+1
|
| Если (ТZ)=1, - // -
|
| Если (ТC)=0, - // -
|
| Если (ТC)=1, - // -
|
| Если (ТP)=0, - // -
|
| Если (ТP)=1, - // -
|
| Если (ТS)=0, - // -
|
| Если (ТS)=1, - // -
|
|
RNZ
RZ
RNC
RC
RPO
RPE
RP
RM
|
-
-
-
-
-
-
-
-
|
-
-
-
-
-
-
-
-
|
-
-
-
-
-
-
-
-
|
-
-
-
-
-
-
-
-
|
-
-
-
-
-
-
-
-
|
|
|
|
| VI. Операции ввода и вывода
|
|
|
|
|
|
|
|
|
|
| 1. Ввод данных
Aß(входные данные)
|
IN
|
-
|
-
|
-
|
-
|
-
|
|
|
|
| 2. Вывод данных
Шина данных Xß(A)
|
OUT
|
-
|
-
|
-
|
-
|
-
|
|
|
|
| VII. Прочие операции
|
|
|
|
|
|
|
11AAA111
|
|
|
| 1. Рестарт
[SP-1][SP-2]ß(PC); SPß(SP)-2;
PCß0000000000AAA000
|
RST
|
-
|
-
|
-
|
-
|
-
|
|
|
|
| 2. Дополнение (А)
Aß(Ā)
|
SMA
|
-
|
-
|
-
|
-
|
-
|
|
|
|
| 3. Установка переноса
TCß1
|
STC
|
-
|
-
|
|
-
|
-
|
|
|
|
| 4. Дополнение переноса
TCß()
|
CMC
|
-
|
-
|
+
|
-
|
-
|
|
|
|
| 5. Разрешение прерываний
|
EI
|
-
|
-
|
-
|
-
|
-
|
|
|
|
| 6. Блокировка прерываний
|
DI
|
-
|
-
|
-
|
-
|
-
|
|
|
|
| 7. Двоично-десятичное представление (А)
|
DAA
|
+
|
+
|
+
|
+
|
+
|
|
|
|
| 8. Отсутствие операции
| NOP
| -
| -
| -
| -
| -
|
|
|
|
| 9. Останов
| HLT
| -
| -
| -
| -
| -
|