Система команд кр580ик80.
I. КОМАНДЫ ПЕРЕСЫЛКИ ДАННЫХ.
1. MOVr1,r2 (r1:= r2)-пересылка данных из регистра r2 в регистр r1(M-в память. М – ячейка ОЗУ, адрес которой находится в паре регистров Н,L.)
1 байт
A,A 7F |
B,A 47 |
C,A 4F |
D,A 57 |
E,A 5F |
H,A 67 |
L,A 6F |
M,A 77 |
A,B 78 |
B,B 40 |
C,B 48 |
D,B 50 |
E,B 58 |
H,B 60 |
L,B 68 |
M,B 70 |
A,C 79 |
B,C 41 |
C,C 49 |
D,C 51 |
E,C 59 |
H,C 61 |
L,C 69 |
M,C 71 |
A,D 7A |
B,D 42 |
C,D 4A |
D,D 52 |
E,D 5A |
H,D 62 |
L,D 6A |
M,D 72 |
A,E 7B |
B,E 43 |
C,E 4B |
D,E 53 |
E,E 5B |
H,E 63 |
L,E 6B |
M,E 73 |
A,H 7C |
B,H 44 |
C,H 4C |
D,H 54 |
E,H 5C |
H,H 64 |
L,H 6C |
M,H 74 |
A,L 7D |
B,L 45 |
C,L 4D |
D,L 55 |
E,L 5D |
H,L 65 |
L,L 6D |
M,L 75 |
A,M 7E |
B,M 46 |
C,M 4E |
D,M 5E |
E,M 5E |
H,M 66 |
L,M 6E |
2. MVI r1,байт2 (r1:= байт2)-пересылка второго байта команды в регистр r1 (M –в память. М – ячейка ОЗУ, адрес которой находится в паре регистров Н,L.)
2 байта
А |
3e |
C |
0e |
E |
1e |
L |
2e |
B |
06 |
D |
16 |
H |
26 |
M |
36 |
3. LXIr1,байт2байт3 (r1:= байт2, r2:= байт3)-пересылка второго и третьего байтов команды в пару внутренних регистров (SP – в стек).
3байта.
B (r1-В, r2-С) |
01 |
D(r1-D, r2-E) |
11 |
Н(r1-H, r2-L) |
21 |
SP |
31 |
4. LDA[адр.] (А:=ОЗУ[адр.] )3a-.пересылка в аккумулятор содержимого ячейки ОЗУ, адрес которой указан во втором и третьем байте команды.
3байта.
5. STA[адр.] (ОЗУ[адр.] :=А) 32 - пересылка cодержимого аккумулятора в ячейку ОЗУ, адрес которой указан во втором и третьем байте команды
3байта.
6. LHLD[адр.] (L:=ОЗУ[адр.], H:=ОЗУ[адр.+1] ) 2a- пересылка в регистр РгLсодержимого ячейки ОЗУ адрес которой указан во втором и третьем байте команды, а в РгH - со следующим адресом.
3байта.
7. SHLD[адр.] (ОЗУ[адр.] :=L, ОЗУ[адр.+1]:=H) 22 - пересылка cодержимого РгL в ячейку ОЗУ, адрес которой указан во втором и третьем байте команды, а содержимое РгН – в следующую ячейку.
3байта.
8. LDAXr1 (А:=ОЗУ[адр.= [r1,r2]]) - пересылка cодержимого ячейки ОЗУ, адрес которой указан в паре регистров ВС (DE), в аккумулятор РгА.
1байт.
B (r1-В, r2-С) |
0А |
D(r1-D, r2-E) |
1А |
9. STAXr1 (ОЗУ[адр.= [r1,r2]]:=А) - пересылка содержимого аккумулятора в ячейку, адрес которой указан в паре регистров ВС (DE)
1байт.
B (r1-В, r2-С) |
02 |
D(r1-D, r2-E) |
12 |
10. XCHG ([H] « [D],[L] « [E]) EB - обмен данными между регистрами H, L и D, E.
1байт.
II. АРИФМЕТИЧЕСКИЕ КОМАНДЫ.
1. Команды выполняющие арифметические операции над содержимым аккумулятора (РгА) и регистрами (r ) МП. (M –ячейкой ОЗУ, адрес которой находится в паре регистров Н,L.)
1байт.
Сложение |
Вычитание |
Увеличение |
Уменьшение |
||||||||
ADD А:=А+r |
A B C D E H L M |
87 80 81 82 83 84 85 86 |
SUB А:=А-r |
AB C D E H L M |
97 90 91 92 93 94 95 96 |
INR r:=r+1 |
A B C D E H L M |
3C04 OC 14 1C 24 2C 34 |
DCR r:=r-1 |
A B C D E H L M |
30 05 0D 15 10 25 2D 35 |
2. Команды, выполняющие арифметические операции над парами регистров МП.(Sp –указатель стека.)
1байт.
Содержимое пары регистров увеличивается на единицу [R1,R2]+1 |
Содержимое пары регистров уменьшается на единицу [R1,R2]-1 |
Содержимое пары регистров складывается с содер. H, L. Результат помещается в H, L. |
||||||
INX [B,C]+1 [D,E]+1 [H,L]+1 [Sp]+1 |
B D H Sp |
03 13 23 33 |
DCX [B,C]-1 [D,E]-1 [H,L]-1 [Sp]-1 |
B D H Sp |
OВ 1В 2В 3В |
DAD |
||
[H,L]+ [B,C] |
B |
09 |
||||||
[H,L]+ [D,E] |
D |
19 |
||||||
[H,L]+ [H,L] |
H |
29 |
||||||
[H,L]+ [Sp] |
Sp |
39 |
3. Команды, выполняющие арифметические операции над содержимым аккумулятора и вторым байтом команды.
2байта
Сложение |
Вычитание |
ADI байт2 С6 |
SUI байт2 D6 |
III. ЛОГИЧЕСКИЕ КОМАНДЫ.
1. Команды, выполняющие логические операции над содержимым аккумулятора и внутренних регистров.
1байт
Логическое умножение "И" А:=А Ù r |
Логическое сложение "ИЛИ" А:=А Ú r |
Исключающее "ИЛИ" А:=А " r |
Сравнение А- r А не изменяется |
||||||||
ANA |
A B C D E H L M |
A7 A0 A1 A2 A3 A4 A5 A6 |
ORA |
AB C D E H L M |
B7 B0 B1 B2 B3 B4 B5 B6 |
XRA |
A B C D E H L M |
AFA8 A9 AA AB AC AD AE |
CMP |
A B C D E H L M |
bf b8 b9 ba bb bc bd be |
2. Команды, выполняющие логические операции над содержимым аккумулятора и вторым байтом команды.
2байта
Операция "И" А:=А Ù [байт2] |
Операция "ИЛИ" А:=А Ú [байт2] |
"Исключающее ИЛИ" А:=А " [байт2] |
"Сравнение" А – [байт2 А не изменяется |
ANI байт2 Е6 |
ORI байт2 F6 |
XRI байт2 EE |
СPI байт FE |
3. Команды сдвига.
1байт
RLС 07 - циклический сдвиг А влево на одну позицию.
RRC 0F - циклический сдвиг А вправо на одну позицию.
IV. КОМАНДЫ ПЕРЕХОДА.
1. Переходы 3байта |
2. Вызовы 3байта |
||||
JMP адрес C3– управление передается команде, адрес которой указан во втором и третьем байте команды перехода (стек не используется). |
CALL адрес CD– управление передается команде, адрес которой указан во втором и третьем байте команды, с сохранением в стеке адреса очередной команды прерванной программы. |
||||
Передача управления по условию |
|||||
JNZ адрес JZ адрес JNC адрес JC адрес JPO адрес JPE адрес JP адрес JM адрес PCHL адрес |
C2 CA D2 DA E2 EA F2 FA E9 |
-не ноль -ноль -нет переноса -есть перенос -нечет. р-тат -чет. рез-тат -плюс -минус - РС:=[H, L]. |
Передача управления по условию |
||
CNZ адрес CZ адрес CNC адрес CC адрес CPO адрес CPE адрес CP адрес CM адрес |
С4 СС Д4 D4 E4 EC F4 FC |
-не ноль -ноль -нет переноса -есть перенос -нечет. р-тат -четн. рез-тат -плюс -минус |
3. Возврат 1байт |
4. Рестарт 1байт |
|||||
RET C9 – безусловный возврат. Считывание в РС двух байт адреса из стека записанных в него при выполнении команды CALL. |
RST |
0 1 2 3 4 5 6 7 |
C7 CF D7 DF E7 EF F7 FF |
Адрес очередной команды запоминается в стеке, а управление передается команде, адрес которой в 8 раз больше числа, указанного в команде. |
||
Возврат по условию. |
||||||
RNZ RZ RNC RC RPO RPE RP RM |
C0 C8 D0 D8 E0 E8 F0 F8 |
-не ноль -ноль -нет переноса -есть перенос -нечет. р-тат -чет. рез-тат -плюс -минус |
||||
V. КОМАНДЫ ВВОДА-ВЫВОДА И УПРАВЛЕНИЯ.
1. Операции со стеком 1байт |
|||||||
PUSH |
BC DE HL PSW |
C5 D5 E5 F5 |
Запись в стек содержимого пары регистров. Запись в стек слова состояния процессора (А,F) |
POP |
BC DE HL PSW |
C1 D1 E1 F1 |
Считывание содержимого двух ячеек стека в пару регистров. Запись в РгА и регистр флагов РгF содержимого стека. |
SPHL |
F9 - |
пересылка содержимого пары H, L в указатель стека. |
|||||
XTHL |
E3 - |
обмен вершины стека с HL: (L) « [(SP)], (H) « [(SP + 1)] |
2. Команды ввода-вывода
2байта
OUT байт адреса порта D3 |
Вывод данных из аккумулятора в порт №nn. |
IN байт адреса порта DB |
Ввод данных из порта №nn в аккумулятор. |
3. Команды управления
1байт
EI |
FB - |
разрешение прерываний |
NOT |
00 - |
нет операций (пауза) |
DI |
F3 - |
запрещение прерываний |
HLT |
76 - |
останов |
Приняты следующие обозначения в поле операндов:
r, r1, r2 - внутренние регистры ( A, B, C, D, E, H, L ) или М (М - ячейка ОЗУ, адрес которой содержится в регистрах H,L);
Примечание: Операнды команд «Ассемблера» могут быть записаны в различных системах счисления, которые обозначаются:
b' - двоичная,
h' - шестнадцатиричная,
d' - десятичная );
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.