- •Микропроцессорные системы
- •Зачем нужны микропроцессоры?
- •Что такое процессор?
- •Запоминающие устройства
- •Адресация при работе с памятью
- •Адресное пространство
- •Взаимодействие процессора с памятью
- •Пример простейшего взаимодействия процессора с памятью
- •Обратная связь с процессором
- •Внутренние регистры и команды процессора процессора
- •Историческая справка
- •Теоретическая часть
- •Программно доступные регистры
- •Формирование физических адресов
- •Регистр признаков
- •Описание лабораторного макета
- •Организация памяти
- •Программа Монитор
- •Назначение индикационного экрана
- •Основные команды программы Монитор
- •Задание для подготовки к работе
- •Рабочее задание
- •Вопросы для самоконтроля
обновлено путём повторного нажатия на кнопку |
2 |
(без указания |
ПУСК/CX |
||
нового значения адреса). |
|
|
При попытке установить точку останова в ПЗУ или по несуществующему адресу возникнет состояние ошибки.
Пошаговое выполнение программы
Кнопка |
3 |
позволяет активировать режим пошагового выпол- |
||
ШАГ/DX |
||||
нения программы при котором после выполнения каждой инструкции |
||||
программы управление передаётся программе Монитор. |
||||
После нажатия кнопки |
3 |
в поле адреса на экране появится |
||
ШАГ/DX |
||||
текущее значение счётчика команд (регистр ip), а в поле данных будет |
напечатано значение ячейки памяти, записанное по указанному адресу. В старшем разряде поля адреса указывается приглашение на ввод «.», что говорит о том, что начальный адрес может быть изменен. В случае ввода нового значения адреса информация из поля данных должна про-
пасть. Ввод сегмента подтверждается нажатием кнопки |
: |
. Ввод |
|||
адреса подтверждается нажатием кнопки |
, |
. |
|
|
|
При каждом нажатии кнопки |
, |
управление будет передаваться |
программе пользователя по адресу, индицирующемуся в поле адреса. В поле данных будет отображаться значение ячейки, находящейся по этому адресу.
После выполнения одной команды управление будет возвращаться к
программе Монитор. |
|
|
Прервать пошаговое выполнение можно нажатие кнопки |
. |
. |
2.4.ЗАДАНИЕ ДЛЯ ПОДГОТОВКИ К РАБОТЕ
2.5.РАБОЧЕЕ ЗАДАНИЕ
1.Произвести сброс нажатием кнопки СБРОС .
2.Получить и записать в лабораторный журнал начальные состояния всех регистров системы «Микролаб 1810» сразу после включения.
3.При помощи программы Монитор произвести установку регистров
52
в соответствии с таблицей.
Регистр |
|
Вариант |
|
||
1 |
2 |
3 |
4 |
||
|
|||||
ax |
07AF |
23742 |
EA88 |
221 |
|
bx |
7227 |
8E9F |
3773 |
F211 |
|
es |
F011 |
F022 |
F033 |
F044 |
|
|
|
|
|
|
4. Произвести чтение данных из памяти по следующим физическим адресам.
Число байт |
|
Вариант |
|
||
1 |
2 |
3 |
4 |
||
|
|||||
1 |
FE001 |
FF010 |
FE020 |
FF030 |
|
1 |
3E762 |
DEAD2 |
BEAF0 |
45678 |
|
5 |
76 |
99 |
0 |
33 |
|
|
|
|
|
|
Полученные результаты зафиксировать в лабораторном журнале.
5. Записать в память по указанным адресам слова. Произвести чтение по тем же адресам по байтам.
Адрес |
|
Вариант |
|
||
1 |
2 |
3 |
4 |
||
|
|||||
100 |
0011 |
AABB |
0033 |
4422 |
|
102 |
1234 |
EF34 |
ADDA |
1331 |
Сделать вывод о том каким образом машинное слово хранится в памяти.
6. Напишите программу, осуществляющую загрузку указанных регистров непосредственными значениями. Запишите машинные коды и мнемоники команд в лабораторном журнале. Выполните программу и проконтролируйте изменение значений регистров. Программу следует начать размещать по адресу 100 .
Регистр |
|
Вариант |
|
||
1 |
2 |
3 |
4 |
||
|
|||||
ax |
1234 |
|
1AD1 |
|
|
bx |
|
FADE |
|
77B1 |
|
ah |
AA |
AB |
CC |
00 |
|
bl |
BB |
BA |
EE |
FF |
|
es |
F012 |
F013 |
F014 |
F01A |
|
|
|
|
|
|
53
7. Напишите программу, выполняющую чтение из ячеек памяти с указанными адресами в регистры. Запишите машинные коды и мнемоники команд в лабораторном журнале. Выполните программу по шагам и проконтролируйте изменение значений регистров.
Регистр |
|
|
Вариант |
|
|
1 |
2 |
3 |
4 |
||
|
ax |
100 |
102 |
102 |
101 |
bx |
ds:bx |
es:ax |
ss:bp |
cs:si |
ah |
cs:bx+2 |
ss:si-2 |
ds:bp+2 |
es:bx-77B0 |
cl |
bx+si+2 |
si+bp-2 |
bp+si+2 |
bx+di+7 |
Отрицательные значения следует представить в дополнительном коде. По каким физическим адресам происходит обращение к памяти?
2.6. ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
1.Чему равна разрядность шины данных и адреса процессора КМ1810ВМ86?
2.Каков максимальный размер команды процессора КМ1810ВМ86?
3.Перечислите регистры общего назначения микропроцессора КМ1810ВМ86? Какова их размерность? Какие специальные функции они могут исполнять?
4.Как образуются физические адреса в процессоре КМ1810ВМ86?
5.Что происходит при переполнении физического адреса?
6.Какие способы адресации поддерживает процессор КМ1810ВМ86?
7.Укажите назначение байта MD REG M/R. Какое назначения имеют его отдельные поля?
8.Какой разрядности может быть смещение при косвенной адресации? От чего зависит его разрядность?
9.В какой последовательности хранятся байты машинного слова в памяти?
10.Каким объёмом оперативной (ОЗУ) и постоянной (ПЗУ) памяти обладает система «Микролаб 1810»? По каким адресам расположена эта память?
54
11.Как выглядит приглашение на ввод команды от программы Монитор? Как выглядит приглашение на ввод значения?
12.Как при помощи программы Монитор записать программу в память?
13.Как при помощи программы Монитор приступить к выполнению программы?
14.В чём отличие выполнения программы и пошагового выполнения программы?
55
56
ПРИЛОЖЕНИЕ B. КОДЫ КОМАНД КМ1810ВМ86 (I8086)
Вэтом приложении приводятся коды команд процессора КМ1810ВМ86 (i8086).
Команды могут иметь длину до 6 байт. Возможны различные форматы команд:
1.Любая команда содержит код операции в первом байте.
2.За байтом с кодом операции может следовать байт MD REG M/R, параметризующий команду или расширяющий её код.
–Поля MD и M/R описывают аргумент EA (см. таблицу B.4).
–Поле MD используется для выбора типа адресации (косвенная или регистровая) и указания на разрядность смещения при косвенной адресации.
–Поле M/R задаёт регистр при регистровой адресации и схему вычисления адреса при косвенной.
–Поле REG задаёт второй аргумент в виде регистра (см. таблицу B.2) или расширяет код команды.
3.При наличии байта MD REG M/R, определяющего косвенную адресацию со смещением, за ним следует 8-ми или 16-разрядное сме-
щение (DISP или DISP ).
4.Завершать команду могут 0, 1, 2 или 4 байта непосредственных данных (общий размер команды не может превысить 6 байт).
Втаблице B.1 приводится полный список всех команд в алфавитном порядке. Для каждой команды указаны мнемоническая запись, код операции (в шестнадцатеричной¹ и двоичной форме), указание на то какие байты следуют за кодом команды, указание признака работы со словом
(w)и формальное описание действия команды.
Вописании используются следующие соглашения:
¹При наличии в двоичном коде подставляемых полей шестнадцатеричный код лишь частично соответствует написанному. Вариативная часть заменяется на букву x.
57
1.REG, SR — обобщённые мнемоники регистров общего назначения и сегментных регистров соответственно.
2.reg, sr — коды регистров REG и SR по таблицам B.2 и B.3.
3.EA — вычисляемый адрес.
4.[EA] — значение по адресу
EA.
5.DATA — байт данных.
6.DATA — слово данных.
7.A — слово смещения.
8.CS — слово номера сегмента.
9.PC — байт смещения относительно начала команды (знаковый).
10.PC — слово смещения относительно начала команды (знаковое).
11.X←Y — присвоение X значения Y.
12._ — операция «или».
13.^ — операция «и».
14._ — операция «исключающее
или».
15.: — операция «не».
16.— операция целочисленного деления.
17.% — операция нахождения остатка.
18.— операция умножения.
19.X Y — операция сдвига X на Y разрядов влево.
20.X Y — операция сдвига X на Y разрядов вправо.
21.— операция обмена значений местами.
22.— операция битовой конкатенации.
23.Конкретные регистры процессора обозначаются строчными буквами.
24.Флаги (признаки) так же обозначены строчными буквами.
25.Последовательные действия указываются через точку с запятой, параллельные — через запятую.
В таблице B.5 собраны команды по кодам. Первый столбец соответствует старшему разряду кода команды (первого байта), а первая строка
— младшему. На пересечении строки и столбца перечислены мнемоники команд, которые имеют такой код первого байта.
58
59
Таблица B.1: Перечень кодов команд процессора КР580ВМ80А
Мнемоника |
Код |
|
Следующие байты |
w |
Описание |
||
aaa |
|
37 |
00110111 |
|
|
|
Коррекция в коде КОИ-7 для сложения |
aad |
|
D5 |
11010101 |
00 001 010 |
|
|
Коррекция в коде КОИ-7 для деления |
aam |
|
D4 |
11010100 |
00 001 010 |
|
|
Коррекция в коде КОИ-7 для умножения |
aas |
|
3F |
00111111 |
|
|
|
Коррекция в коде КОИ-7 для вычитания |
adc |
EA, REG |
10 |
00010000 |
MD REG R/M |
/DISP |
0 |
←[EA][EA] + REG + cf |
adc |
EA, REG |
11 |
00010001 |
MD REG R/M |
/DISP |
1 |
←[EA][EA] + REG + cf |
adc |
REG, EA |
12 |
00010010 |
MD REG R/M |
/DISP |
0 |
←REGREG + [EA] + cf |
adc |
REG, EA |
13 |
00010011 |
MD REG R/M |
/DISP |
1 |
←REGREG + [EA] + cf |
adc |
al, DATA |
14 |
00010100 |
|
DATA |
0 |
al←al + DATA + cf |
adc |
ax, DATA |
15 |
00010101 |
|
DATA |
1 |
ax←ax + DATA + cf |
adc |
EA, DATA |
80 |
10000000 |
MD 010 R/M |
/DISP DATA |
0 |
←[EA][EA] + DATA + cf |
adc |
EA, DATA |
81 |
10000001 |
MD 010 R/M |
/DISP DATA |
1 |
←[EA][EA] + DATA + cf |
adc |
EA, DATA |
82 |
10000010 |
MD 010 R/M |
/DISP DATA |
0 |
←[EA][EA] + DATA + cf (не документир.) |
adc |
EA, DATA |
83 |
10000011 |
MD 010 R/M |
/DISP DATA |
1 |
←[EA][EA] + DATA + cf |
add |
EA, REG |
00 |
00000000 |
MD REG R/M |
/DISP |
0 |
←[EA][EA] + REG |
add |
EA, REG |
01 |
00000001 |
MD REG R/M |
/DISP |
1 |
←[EA][EA] + REG |
add |
REG, EA |
02 |
00000010 |
MD REG R/M |
/DISP |
0 |
←REGREG + [EA] |
add |
REG, EA |
03 |
00000011 |
MD REG R/M |
/DISP |
1 |
←REGREG + [EA] |
add |
al, DATA |
04 |
00000100 |
|
DATA |
0 |
al←al + DATA |
add |
ax, DATA |
05 |
00000101 |
|
DATA |
1 |
ax←ax + DATA |
add |
EA, DATA |
80 |
10000000 |
MD 000 R/M |
/DISP DATA |
0 |
←[EA][EA] + DATA |
add |
EA, DATA |
81 |
10000001 |
MD 000 R/M |
/DISP DATA |
1 |
←[EA][EA] + DATA |
add |
EA, DATA |
82 |
10000010 |
MD 000 R/M |
/DISP DATA |
0 |
←[EA][EA] + DATA (не документир.) |
add |
EA, DATA |
83 |
10000011 |
MD 000 R/M |
/DISP DATA |
1 |
←[EA][EA] + DATA |
and |
EA, REG |
20 |
00100000 |
MD REG R/M |
/DISP |
0 |
←[EA][EA] ^ REG |
and |
EA, REG |
21 |
00100001 |
MD REG R/M |
/DISP |
1 |
←[EA][EA] ^ REG |
and |
REG, EA |
22 |
00100010 |
MD REG R/M |
/DISP |
0 |
←REGREG ^ [EA] |
and |
REG, EA |
23 |
00100011 |
MD REG R/M |
/DISP |
1 |
←REGREG ^ [EA] |
and |
al, DATA |
24 |
00100100 |
|
DATA |
0 |
al←al ^ DATA |
and |
ax, DATA |
25 |
00100101 |
|
DATA |
1 |
ax←ax ^ DATA |
and |
EA, DATA |
80 |
10000000 |
MD 100 R/M |
/DISP DATA |
0 |
←[EA][EA] ^ DATA |
and |
EA, DATA |
81 |
10000001 |
MD 100 R/M |
/DISP DATA |
1 |
←[EA][EA] ^ DATA |
call |
:ACS |
9A |
10011010 |
|
A CS |
|
sp←sp 2; ←cs;[ss:sp] sp←sp 2; ←ip;[ss:sp] |
|
PC |
|
|
|
PC |
|
;cs←CS ip←A |
call |
E8 |
11101000 |
|
|
sp←sp 2; ←ip;[ss:sp] ip←ip PC |
||
|
|
|
|
|
|
|
Продолжение на след. стр. |
60
|
|
|
|
|
|
|
|
|
|
|
|
|
Продолжение таблицы B.1 |
|
|
Мнемоника |
|
Код |
|
Следующие байты |
|
w |
|
Описание |
|
||||
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
call |
EA |
|
FF |
11111111 |
MD 010 R/M |
/DISP |
|
|
|
sp←sp 2; ←ip;[ss:sp] ip←[EA] |
|
||
|
call |
EA |
|
FF |
11111111 |
MD 011 R/M |
/DISP |
|
|
|
sp←sp |
2; ←cs;[ss:sp] sp←sp 2; ←ip;[ss:sp] |
|
|
|
|
|
|
|
|
|
|
|
|
|
;cs←[EA] ip←[EA+2] |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
cbw |
|
98 |
10011000 |
|
|
|
|
|
ax←al (знаковое расширение) |
|
|||
|
clc |
|
|
F8 |
11111000 |
|
|
|
|
|
cf←0 |
|
|
|
|
cld |
|
|
FC |
11111100 |
|
|
|
|
|
df←0 |
|
|
|
|
cli |
|
|
FA |
11111010 |
|
|
|
|
|
sf←0 |
|
|
|
|
cmc |
|
|
F5 |
11110101 |
|
|
|
|
|
FC←:FC |
|
||
|
cmp |
EA, REG |
38 |
00111000 |
MD REG R/M |
/DISP |
|
0 |
|
[EA] |
REG |
|
||
|
cmp |
EA, REG |
39 |
00111001 |
MD REG R/M |
/DISP |
|
1 |
|
[EA] |
REG |
|
||
|
cmp |
REG, EA |
|
3A |
00111010 |
MD REG R/M |
/DISP |
|
0 |
|
REG |
[EA] |
|
|
|
cmp |
REG, EA |
|
3B |
00111011 |
MD REG R/M |
/DISP |
|
1 |
|
REG |
[EA] |
|
|
|
cmp |
al, DATA |
|
3C |
00111100 |
|
DATA |
|
0 |
|
al |
DATA |
|
|
|
cmp |
ax, DATA |
|
3D |
00111101 |
|
DATA |
|
1 |
|
ax |
DATA |
|
|
|
cmp |
EA, DATA |
80 |
10000000 |
MD 111 R/M |
/DISP DATA |
|
0 |
|
[EA] |
DATA |
|
||
|
cmp |
EA, DATA |
81 |
10000001 |
MD 111 R/M |
/DISP DATA |
|
1 |
|
[EA] |
DATA |
|
||
|
cmp |
EA, DATA |
82 |
10000010 |
MD 111 R/M |
/DISP DATA |
|
0 |
|
[EA] |
DATA (не документир.) |
|
||
|
cmp |
EA, DATA |
83 |
10000011 |
MD 111 R/M |
/DISP DATA |
|
1 |
|
[EA] |
DATA |
|
||
|
cmps |
ds:si, es:di |
|
A6 |
10100110 |
|
|
|
0 |
|
[ds:si] ;[es:di] if(df = 0) di←di + 1, si←si + 1; else |
|
||
|
|
|
|
|
|
|
|
|
|
|
di←di |
1, si←si 1 |
|
|
|
cmps |
ds:si, es:di |
|
A7 |
10100111 |
|
|
|
1 |
|
[ds:si] |
;[es:di] if(df = 0) di←di + 2, si←si + 2; else |
|
|
|
|
|
|
|
|
|
|
|
|
|
di←di |
2, si←si 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
cs: |
|
|
2E |
00101110 |
|
|
|
|
|
Префикс: использовать cs при косв. адр. |
|
||
|
cwd |
|
99 |
10011001 |
|
|
|
|
|
(dx ax)←ax (знаковое расширение) |
|
|||
|
daa |
|
27 |
00100111 |
|
|
|
|
|
Десятичная коррекция для сложения |
|
|||
|
das |
|
|
2F |
00101111 |
|
|
|
|
|
Десятичная коррекция для вычитания |
|
||
|
dec |
REG |
|
4x |
01001reg |
|
|
|
|
|
←REGREG 1 |
|
||
|
dec |
EA |
|
FE |
11111110 |
MD 001 R/M |
/DISP |
|
0 |
|
←[EA][EA] 1 |
|
||
|
dec |
EA |
|
FF |
11111111 |
MD 001 R/M |
/DISP |
|
1 |
|
←[EA][EA] 1 |
|
||
|
div |
EA |
|
F6 |
11110110 |
MD 110 R/M |
/DISP |
|
0 |
|
al←ax ;[EA] ah←ax % [EA] |
|
||
|
div |
EA |
|
F7 |
11110111 |
MD 110 R/M |
/DISP |
|
1 |
|
al←ax ;[EA] ah←ax % [EA] |
|
||
|
ds: |
|
|
3E |
00111110 |
|
|
|
|
|
Префикс: использовать ds при косв. адр. |
|
||
|
es: |
|
26 |
00100110 |
|
|
|
|
|
Префикс: использовать es при косв. адр. |
|
|||
|
esc |
xxxXXX, EA |
|
Dx |
11011xxx |
MD XXX R/M |
/DISP |
|
|
|
Передать управление внешнему устройству |
|
||
|
hlt |
|
|
F4 |
11110100 |
|
|
|
|
|
Режим останова |
|
||
|
idiv |
EA |
|
F6 |
11110110 |
MD 111 R/M |
/DISP |
|
0 |
|
al←ax ;[EA] ah←ax % [EA] (со знаком) |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
Продолжение на след. стр. |
|
61
|
|
|
|
|
|
|
|
|
|
|
|
|
Продолжение таблицы B.1 |
|
|
Мнемоника |
|
Код |
|
|
Следующие байты |
|
w |
|
Описание |
|
|||
|
|
|
|
|
|
|
||||||||
|
idiv |
EA |
|
F7 |
|
11110111 |
MD 111 R/M |
/DISP |
|
1 |
|
al←ax ;[EA] ah←ax % [EA] (со знаком) |
|
|
|
|
|
|
|
||||||||||
|
imul |
EA |
|
F6 |
|
11110110 |
MD 101 R/M |
/DISP |
|
0 |
|
ax←al [EA] (со знаком) |
|
|
|
imul |
EA |
|
F7 |
|
11110111 |
MD 101 R/M |
/DISP |
|
1 |
|
ax←al [EA] (со знаком) |
|
|
|
in |
al, DATA |
|
E4 |
|
11100100 |
|
DISP |
|
0 |
|
]al←DEV[DATA (адресное пр во устройств) |
|
|
|
in |
ax, DATA |
|
E5 |
|
11100101 |
|
DISP |
|
1 |
|
]ax←DEV[DATA (адресное пр во устройств) |
|
|
|
in |
al, dx |
|
EC |
|
11101100 |
|
|
|
0 |
|
al←DEV[dx] (адресное пр во устройств) |
|
|
|
in |
ax, dx |
|
ED |
|
11101101 |
|
|
|
1 |
|
ax←DEV[dx] (адресное пр во устройств) |
|
|
|
inc |
REG |
|
4x |
|
01000reg |
|
|
|
|
|
←REGREG + 1 |
|
|
|
inc |
EA |
|
FE |
|
11111110 |
MD 000 R/M |
/DISP |
|
0 |
|
←[EA][EA] + 1 |
|
|
|
inc |
EA |
|
FF |
|
11111111 |
MD 000 R/M |
/DISP |
|
1 |
|
←[EA][EA] + 1 |
|
|
|
int |
3 |
|
CC |
|
11001100 |
|
|
|
|
|
Прерывание 3 (отладки) |
|
|
|
int |
DATA |
|
CD |
|
11001101 |
|
DATA |
|
|
|
Прерывание DATA |
|
|
|
into |
|
|
CE |
|
11001110 |
|
|
|
|
|
Прерывание 4 (переполнение) |
|
|
|
iret |
|
|
CF |
|
11001111 |
|
|
|
|
|
;fl←[ss:sp] sp←sp + 2; ;ip←[ss:sp] sp←sp + 2; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;cs←[ss:sp] sp←sp + 2 |
|
|
|
j(cond) |
PC |
|
7x |
|
0111cond |
|
PC |
|
|
|
if(cond) pc←pc PC |
|
|
|
jcxz |
PC |
|
E3 |
|
11100011 |
|
PC |
|
|
|
if(cx = 0) pc←pc PC |
|
|
|
jmp |
PC |
|
E9 |
|
11101001 |
|
PC |
|
|
|
ip←ip PC |
|
|
|
jmp |
:ACS |
|
EA |
|
11101010 |
|
A CS |
|
|
|
;cs←CS ip←A |
|
|
|
jmp |
PC |
|
EB |
|
11101011 |
|
PC |
|
|
|
ip←ip PC |
|
|
|
jmp |
EA |
|
FF |
|
11111111 |
MD 100 R/M |
/DISP |
|
|
|
ip←[EA] |
|
|
|
jmp |
EA |
|
FF |
|
11111111 |
MD 101 R/M |
/DISP |
|
|
|
;cs←[EA] ip←[EA+2] |
|
|
|
lahf |
|
|
9F |
|
10011111 |
|
|
|
|
|
ah←(sf zf 0 af 0 pf 1 c ) |
|
|
|
lds |
REG, EA |
|
C5 |
|
11000101 |
MD REG R/M |
/DISP |
|
|
|
;ds←[EA] REG←[EA+2] |
|
|
|
lea |
REG, EA |
|
8D |
|
10001101 |
MD REG R/M |
/DISP |
|
|
|
←EAREG |
|
|
|
les |
REG, EA |
|
C4 |
|
11000100 |
MD REG R/M |
/DISP |
|
|
|
;es←[EA] REG←[EA+2] |
|
|
|
lock: |
|
|
F0 |
|
11110000 |
|
|
|
|
|
Префикс: выдать сигнал блокировки шины |
|
|
|
lods |
al, ds:si |
|
AC |
|
10101100 |
|
|
|
0 |
|
;al←[es:di] if(df = 0) di←di + 1, si←si + 1; else di←di |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1, si←si 1 |
|
|
|
lods |
ax, ds:si |
|
AD |
|
10101101 |
|
|
|
1 |
|
;ax←[es:di] if(df = 0) di←di + 2, si←si + 2; else |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
di←di |
2, si←si 2 |
|
|
loop |
PC |
|
E2 |
|
11100010 |
|
PC |
|
|
|
cx←cx |
1; if(cx ̸= 0) pc←pc PC |
|
|
loope |
PC |
|
E1 |
|
11100001 |
|
PC |
|
|
|
cx←cx |
1; if(cx ̸= 0 ^ zf = 1) pc←pc PC |
|
|
loopne |
PC |
|
E0 |
|
11100000 |
|
PC |
|
|
|
cx←cx |
1; if(cx ̸= 0 ^ zf = 0) pc←pc PC |
|
|
mov |
EA, REG |
88 |
|
10001000 |
MD REG R/M |
/DISP |
|
0 |
|
←REG[EA] |
|
||
|
mov |
EA, REG |
89 |
|
10001001 |
MD REG R/M |
/DISP |
|
1 |
|
←REG[EA] |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
Продолжение на след. стр. |
|
62
Продолжение таблицы B.1
Мнемоника |
Код |
|
Следующие байты |
w |
Описание |
||
mov |
REG, EA |
8A |
10001010 |
MD REG R/M |
/DISP |
0 |
←[EA]REG |
mov |
REG, EA |
8B |
10001011 |
MD REG R/M |
/DISP |
1 |
←[EA]REG |
mov |
REG, SR |
8C |
10001100 |
MD 0SR R/M |
/DISP |
|
←SRREG |
mov |
SR, REG |
8E |
10001110 |
MD 0SR R/M |
/DISP |
|
SR←REG |
mov |
al, A |
A0 |
10100000 |
|
A |
0 |
]al←[ds:A |
mov |
ax, A |
A1 |
10100001 |
|
A |
1 |
]ax←[ds:A |
mov |
,A al |
A2 |
10100010 |
|
A |
0 |
←al][ds:A |
mov |
,A ax |
A3 |
10100011 |
|
A |
1 |
←ax][ds:A |
mov |
REG, DATA |
Bx |
10110reg |
|
DATA |
0 |
←DATAREG |
mov |
REG, DATA |
Bx |
10111reg |
|
DATA |
1 |
←DATAREG |
mov |
EA, DATA |
C6 |
11000110 |
MD 000 R/M |
/DISP DATA |
0 |
←DATA[EA] |
mov |
EA, DATA |
C7 |
11000111 |
MD 000 R/M |
/DISP DATA |
1 |
←DATA[EA] |
movs |
es:di, ds:si |
A4 |
10100100 |
|
|
0 |
;←[ds:si][es:di] if(df = 0) di←di + 1, si←si + 1; else |
|
|
|
|
|
|
|
di←di 1, si←si 1 |
movs |
es:di, ds:si |
A5 |
10100101 |
|
|
1 |
;←[ds:si][es:di] if(df = 0) di←di + 2, si←si + 2; else |
|
|
|
|
|
|
|
di←di 2, si←si 2 |
mul |
EA |
F6 |
11110110 |
MD 100 R/M |
/DISP |
0 |
ax←al [EA] |
mul |
EA |
F7 |
11110111 |
MD 100 R/M |
/DISP |
1 |
ax←al [EA] |
neg |
EA |
F6 |
11110110 |
MD 011 R/M |
/DISP |
0 |
←[EA] [EA] |
neg |
EA |
F7 |
11110111 |
MD 011 R/M |
/DISP |
1 |
←[EA] [EA] |
nop |
|
90 |
10010000 |
|
|
|
ax ax |
not |
EA |
F6 |
11110110 |
MD 010 R/M |
/DISP |
0 |
←[EA]:[EA] |
not |
EA |
F7 |
11110111 |
MD 010 R/M |
/DISP |
1 |
←[EA]:[EA] |
or |
EA, REG |
08 |
00001000 |
MD REG R/M |
/DISP |
0 |
←[EA][EA] _ REG |
or |
EA, REG |
09 |
00001001 |
MD REG R/M |
/DISP |
1 |
←[EA][EA] _ REG |
or |
REG, EA |
0A |
00001010 |
MD REG R/M |
/DISP |
0 |
←REGREG _ [EA] |
or |
REG, EA |
0B |
00001011 |
MD REG R/M |
/DISP |
1 |
←REGREG _ [EA] |
or |
al, DATA |
0C |
00001100 |
|
DATA |
0 |
al←al _ DATA |
or |
ax, DATA |
0D |
00001101 |
|
DATA |
1 |
ax←ax _ DATA |
or |
EA, DATA |
80 |
10000000 |
MD 001 R/M |
/DISP DATA |
0 |
←[EA][EA] _ DATA |
or |
EA, DATA |
81 |
10000001 |
MD 001 R/M |
/DISP DATA |
1 |
←[EA][EA] _ DATA |
out |
al, DATA |
E6 |
11100110 |
|
DISP |
0 |
←al]DEV[DATA (адресное пр во устройств) |
out |
ax, DATA |
E7 |
11100111 |
|
DISP |
1 |
←ax]DEV[DATA (адресное пр во устройств) |
out |
al, dx |
EE |
11101110 |
|
|
0 |
←alDEV[dx] (адресное пр во устройств) |
out |
ax, dx |
EF |
11101111 |
|
|
1 |
←axDEV[dx] (адресное пр во устройств) |
pop |
SR |
xx |
000sr111 |
|
|
|
;SR←[ss:sp] sp←sp + 2 (sr ̸= cs) |
pop |
REG |
5x |
01011reg |
|
|
|
;←[ss:sp]REG sp←sp + 2 |
|
|
|
|
|
|
|
Продолжение на след. стр. |
63
|
|
|
|
|
|
|
|
|
|
|
Продолжение таблицы B.1 |
|
|
Мнемоника |
|
Код |
|
Следующие байты |
|
w |
|
Описание |
|
||
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pop |
EA |
|
8F |
10001111 |
MD 000 R/M |
|
|
|
|
;←[ss:sp][EA] sp←sp + 2 |
|
|
popf |
|
|
9D |
10011101 |
|
|
|
|
|
;←[ss:sp]fl sp←sp + 2 |
|
|
push |
SR |
|
xx |
000sr110 |
|
|
|
|
|
sp←sp 2; ←SR[ss:sp] |
|
|
push |
REG |
|
5x |
01010reg |
|
|
|
|
|
sp←sp 2; ←REG[ss:sp] |
|
|
push |
EA |
|
FF |
11111111 |
MD 110 R/M |
/DISP |
|
|
|
sp←sp 2; ←[EA][ss:sp] |
|
|
pushf |
|
|
9C |
10011100 |
|
|
|
|
|
sp←sp 2; ←fl[ss:sp] |
|
|
rcl |
EA, 1 |
|
D0 |
11010000 |
MD 010 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] 1 (циклический через c ) |
|
|
rcl |
EA, 1 |
|
D1 |
11010001 |
MD 010 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] 1 (циклический через c ) |
|
|
rcl |
EA, cl |
|
D2 |
11010010 |
MD 010 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] cl (циклический через c ) |
|
|
rcl |
EA, cl |
|
D3 |
11010011 |
MD 010 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] cl (циклический через c ) |
|
|
rcr |
EA, 1 |
|
D0 |
11010000 |
MD 011 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] 1 (циклический через c ) |
|
|
rcr |
EA, 1 |
|
D1 |
11010001 |
MD 011 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] 1 (циклический через c ) |
|
|
rcr |
EA, cl |
|
D2 |
11010010 |
MD 011 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] cl (циклический через c ) |
|
|
rcr |
EA, cl |
|
D3 |
11010011 |
MD 011 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] cl (циклический через c ) |
|
|
repe: |
|
|
F3 |
11110011 |
|
|
|
|
|
Префикс: следующая; if(cx ̸= 0 ^ zf = 0) повтор |
|
|
repne: |
|
|
F2 |
11110010 |
|
|
|
|
|
Префикс: следующая; if(cx ̸= 0 ^ zf = 1) повтор |
|
|
retf |
DATA |
|
CA |
11001010 |
|
DATA |
|
|
|
sp←sp + ;DATA ;ip←[ss:sp] sp←sp + 2; |
|
|
|
|
|
|
|
|
|
|
|
|
;cs←[ss:sp] sp←sp + 2 |
|
|
retf |
|
|
CB |
11001011 |
|
|
|
|
|
;ip←[ss:sp] sp←sp + 2; ;cs←[ss:sp] sp←sp + 2 |
|
|
retn |
DATA |
|
C2 |
11000010 |
|
DATA |
|
|
|
sp←sp + ;DATA ;ip←[ss:sp] sp←sp + 2 |
|
|
retn |
|
|
C3 |
11000011 |
|
|
|
|
|
;ip←[ss:sp] sp←sp + 2 |
|
|
rol |
EA, 1 |
|
D0 |
11010000 |
MD 000 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] 1 (циклический) |
|
|
rol |
EA, 1 |
|
D1 |
11010001 |
MD 000 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] 1 (циклический) |
|
|
rol |
EA, cl |
|
D2 |
11010010 |
MD 000 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] cl (циклический) |
|
|
rol |
EA, cl |
|
D3 |
11010011 |
MD 000 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] cl (циклический) |
|
|
ror |
EA, 1 |
|
D0 |
11010000 |
MD 001 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] 1 (циклический) |
|
|
ror |
EA, 1 |
|
D1 |
11010001 |
MD 001 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] 1 (циклический) |
|
|
ror |
EA, cl |
|
D2 |
11010010 |
MD 001 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] cl (циклический) |
|
|
ror |
EA, cl |
|
D3 |
11010011 |
MD 001 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] cl (циклический) |
|
|
sahf |
|
|
9E |
10011110 |
|
|
|
|
|
(sf zf 0 af 0 pf 1 c ←ah) |
|
|
sar |
EA, 1 |
|
D0 |
11010000 |
MD 111 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] 1 (арифметический) |
|
|
sar |
EA, 1 |
|
D1 |
11010001 |
MD 111 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] 1 (арифметический) |
|
|
sar |
EA, cl |
|
D2 |
11010010 |
MD 111 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] cl (арифметический) |
|
|
sar |
EA, cl |
|
D3 |
11010011 |
MD 111 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] cl (арифметический) |
|
|
sbb |
EA, REG |
18 |
00011000 |
MD REG R/M |
/DISP |
|
0 |
|
←[EA][EA] REG cf |
|
|
|
sbb |
EA, REG |
19 |
00011001 |
MD REG R/M |
/DISP |
|
1 |
|
←[EA][EA] REG cf |
|
|
|
|
|
|
|
|
|
|
|
|
|
Продолжение на след. стр. |
|
64
|
|
|
|
|
|
|
|
|
|
|
|
|
Продолжение таблицы B.1 |
|
|
Мнемоника |
|
Код |
|
Следующие байты |
|
w |
|
Описание |
|
||||
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
sbb |
REG, EA |
|
1A |
00011010 |
MD REG R/M |
/DISP |
|
0 |
|
←REGREG [EA] cf |
|||
|
sbb |
REG, EA |
|
1B |
00011011 |
MD REG R/M |
/DISP |
|
1 |
|
←REGREG [EA] cf |
|||
|
sbb |
al, DATA |
|
1C |
00011100 |
|
DATA |
|
0 |
|
al←al |
DATA |
cf |
|
|
sbb |
ax, DATA |
|
1D |
00011101 |
|
DATA |
|
1 |
|
ax←ax |
DATA |
cf |
|
|
sbb |
EA, DATA |
80 |
10000000 |
MD 011 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] DATA cf |
||||
|
sbb |
EA, DATA |
81 |
10000001 |
MD 011 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] DATA cf |
||||
|
sbb |
EA, DATA |
82 |
10000010 |
MD 011 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] DATA cf (не документир.) |
||||
|
sbb |
EA, DATA |
83 |
10000011 |
MD 011 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] DATA cf |
||||
|
scas |
es:di, al |
|
AE |
10101110 |
|
|
|
0 |
|
al |
;[es:di] if(df =0) di←di +1, si←si +1; else di←di |
||
|
|
|
|
|
|
|
|
|
|
|
|
1, si←si 1 |
|
|
|
scas |
es:di, ax |
|
AF |
10101111 |
|
|
|
1 |
|
ax |
;[es:di] if(df = 0) di←di + 2, si←si + 2; else |
||
|
|
|
|
|
|
|
|
|
|
|
di←di |
2, si←si |
2 |
|
|
shl |
EA, 1 |
|
D0 |
11010000 |
MD 100 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] 1 |
|
||
|
shl |
EA, 1 |
|
D1 |
11010001 |
MD 100 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] 1 |
|
||
|
shl |
EA, cl |
|
D2 |
11010010 |
MD 100 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] cl |
|
||
|
shl |
EA, cl |
|
D3 |
11010011 |
MD 100 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] cl |
|||
|
shr |
EA, 1 |
|
D0 |
11010000 |
MD 101 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] 1 |
|
||
|
shr |
EA, 1 |
|
D1 |
11010001 |
MD 101 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] 1 |
|
||
|
shr |
EA, cl |
|
D2 |
11010010 |
MD 101 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] cl |
|
||
|
shr |
EA, cl |
|
D3 |
11010011 |
MD 101 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] cl |
|||
|
ss: |
|
36 |
00110110 |
|
|
|
|
|
Префикс: использовать ss при косв. адр. |
||||
|
stc |
|
|
F9 |
11111001 |
|
|
|
|
|
cf←1 |
|
|
|
|
std |
|
|
FD |
11111101 |
|
|
|
|
|
df←1 |
|
|
|
|
sti |
|
|
FB |
11111011 |
|
|
|
|
|
sf←1 |
|
|
|
|
stos |
es:di, al |
|
AA |
10101010 |
|
|
|
0 |
|
←al;[es:di] if(df = 0) di←di + 1, si←si + 1; else di←di |
|||
|
|
|
|
|
|
|
|
|
|
|
|
1, si←si 1 |
|
|
|
stos |
es:di, ax |
|
AB |
10101011 |
|
|
|
1 |
|
←ax;[es:di] if(df = 0) di←di + 2, si←si + 2; else |
|||
|
|
|
|
|
|
|
|
|
|
|
di←di |
2, si←si |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
sub |
EA, REG |
28 |
00101000 |
MD REG R/M |
/DISP |
|
0 |
|
←[EA][EA] REG |
||||
|
sub |
EA, REG |
29 |
00101001 |
MD REG R/M |
/DISP |
|
1 |
|
←[EA][EA] REG |
||||
|
sub |
REG, EA |
|
2A |
00101010 |
MD REG R/M |
/DISP |
|
0 |
|
←REGREG [EA] |
|||
|
sub |
REG, EA |
|
2B |
00101011 |
MD REG R/M |
/DISP |
|
1 |
|
←REGREG [EA] |
|||
|
sub |
al, DATA |
|
2C |
00101100 |
|
DATA |
|
0 |
|
al←al |
DATA |
|
|
|
sub |
ax, DATA |
|
2D |
00101101 |
|
DATA |
|
1 |
|
ax←ax |
DATA |
|
|
|
sub |
EA, DATA |
80 |
10000000 |
MD 101 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] DATA |
||||
|
sub |
EA, DATA |
81 |
10000001 |
MD 101 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] DATA |
||||
|
sub |
EA, DATA |
82 |
10000010 |
MD 101 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] DATA (не документир.) |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Продолжение на след. стр. |
65
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Продолжение таблицы B.1 |
|
|
Мнемоника |
|
Код |
|
Следующие байты |
|
w |
|
Описание |
|
|||||||||
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sub |
EA, DATA |
|
83 |
10000011 |
MD 101 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] DATA |
|
|||||||
|
test |
EA, REG |
84 |
10000100 |
MD REG R/M |
/DISP |
|
0 |
|
[EA] ^ REG |
|
||||||||
|
test |
EA, REG |
85 |
10000101 |
MD REG R/M |
/DISP |
|
1 |
|
[EA] ^ REG |
|
||||||||
|
test |
al, DATA |
|
A8 |
10101000 |
|
DATA |
|
0 |
|
al ^ DATA |
|
|||||||
|
test |
ax, DATA |
|
A9 |
10101001 |
|
DATA |
|
1 |
|
ax ^ DATA |
|
|||||||
|
test |
EA, DATA |
|
F6 |
11110110 |
MD 000 R/M |
/DISP DATA |
|
0 |
|
[EA] ^ DATA |
|
|||||||
|
test |
EA, DATA |
|
F7 |
11110111 |
MD 000 R/M |
/DISP DATA |
|
1 |
|
[EA] ^ DATA |
|
|||||||
|
wait |
|
|
9B |
10011011 |
|
|
|
|
|
Ожидание синхронизации с внеш. устройством |
|
|||||||
|
xchg |
REG, EA |
86 |
10000110 |
MD REG R/M |
/DISP |
|
0 |
|
[EA] REG |
|
||||||||
|
xchg |
REG, EA |
87 |
10000111 |
MD REG R/M |
/DISP |
|
1 |
|
[EA] REG |
|
||||||||
|
xchg |
ax, REG |
|
9x |
10010reg |
|
|
|
|
|
ax REG |
|
|||||||
|
xlat |
al, ds:bx |
|
D7 |
11010111 |
|
|
|
|
|
al←[ds:bx+al] (перекодировка) |
|
|||||||
|
xor |
EA, REG |
30 |
00110000 |
MD REG R/M |
/DISP |
|
0 |
|
←[EA][EA] _ REG |
|
||||||||
|
xor |
EA, REG |
31 |
00110001 |
MD REG R/M |
/DISP |
|
1 |
|
←[EA][EA] |
|
|
|
|
_ REG |
|
|||
|
|
REG, EA |
|
00110010 |
MD REG R/M |
/DISP |
|
0 |
|
←REGREG _ |
|
|
|
||||||
|
xor |
32 |
|
|
[EA] |
|
|||||||||||||
|
xor |
REG, EA |
33 |
00110011 |
MD REG R/M |
/DISP |
|
1 |
|
←REGREG |
|
|
_ [EA] |
|
|||||
|
|
|
|
|
|||||||||||||||
|
xor |
al, DATA |
34 |
00110100 |
|
DATA |
|
0 |
|
al←al DATA |
|
|
|
||||||
|
xor |
ax, DATA |
35 |
00110101 |
|
DATA |
|
1 |
|
ax←ax _ DATA |
|
||||||||
|
xor |
EA, DATA |
80 |
10000000 |
MD 110 R/M |
/DISP DATA |
|
0 |
|
←[EA][EA] _ DATA |
|
||||||||
|
xor |
EA, DATA |
81 |
10000001 |
MD 110 R/M |
/DISP DATA |
|
1 |
|
←[EA][EA] |
|
_ DATA |
|
|
|
|
|
|
|
|
Таблица B.3: Коды сег- |
Таблица B.4: Образование операнда (EA) в |
|
||||||||||||
Таблица B.2: Коды реги- |
ментных регистров (sr) |
КМ1810ВМ86 |
|
|
|
|
|
|
|||||||||||||
стрв (reg) КМ1810ВМ86 |
КМ1810ВМ86 |
|
|
|
|
|
|
|
|
||||||||||||
|
Код |
|
w |
|
|
|
|
Код |
|
Регистр |
|
|
|
|
|
MD |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 )(REG |
|
1 )(REG |
|
|
|
00 |
|
es |
|
|
R/M |
00 |
01 |
10 |
11 |
|
||
|
|
|
|
|
|
|
|
|
01 |
|
cs |
|
|
|
|
Косвенная адресфция |
w=0 |
|
|
w=1 |
|
|
000 |
|
ax |
|
al |
|
|
|
|
||||||||||||
|
001 |
|
cx |
|
cl |
|
|
|
10 |
|
ss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
000 |
[bx+si] |
][bx+si+DISP |
][bx+si+DISP |
al |
|
|
ax |
|||||
|
010 |
|
dx |
|
dl |
|
|
|
11 |
|
ds |
|
|
001 |
[bx+di] |
][bx+di+DISP |
][bx+di+DISP |
cl |
|
|
cx |
|
011 |
|
bx |
|
bl |
|
|
|
|
|
|
|
|
010 |
[bp+si] |
][bp+si+DISP |
][bp+si+DISP |
dl |
|
|
dx |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
100 |
|
sp |
|
ah |
|
|
|
|
|
|
|
|
011 |
[bp+di] |
][bp+di+DISP |
][bp+di+DISP |
bl |
|
|
bx |
|
101 |
|
bp |
|
ch |
|
|
|
|
|
|
|
|
100 |
[si] |
][si+DISP |
][si+DISP |
ah |
|
|
sp |
|
110 |
|
si |
|
dh |
|
|
|
|
|
|
|
|
101 |
[di] |
][di+DISP |
][di+DISP |
ch |
|
|
bp |
|
111 |
|
di |
|
bh |
|
|
|
|
|
|
|
|
110 |
][DISP |
][bp+DISP |
][bp+DISP |
dh |
|
|
si |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
[bx] |
][bx+DISP |
][bx+DISP |
bh |
|
|
di |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66
Таблица B.5: Таблица обратных преобразований кодов команд КМ1810ВМ86
СР |
|
|
|
|
|
|
|
|
|
Младший разряд (МР) |
|
|
|
|
|
|
|
|
|
|
||||
|
|
0 |
1 |
2 |
|
3 |
4 |
|
5 |
6 |
|
7 |
8 |
9 |
A |
|
B |
|
C |
|
D |
E |
|
F |
0 |
|
|
|
add |
|
|
|
push |
|
pop |
|
|
|
or |
|
|
|
push |
|
|
||||
1 |
|
|
|
adc |
|
|
|
push |
|
pop |
|
|
|
sbb |
|
|
|
push |
|
pop |
||||
2 |
|
|
|
and |
|
|
|
es: |
|
daa |
|
|
|
sub |
|
|
|
cs: |
|
das |
||||
3 |
|
|
|
xor |
|
|
|
|
ss: |
|
aaa |
|
|
|
sub |
|
|
|
ds: |
|
aas |
|||
4 |
|
|
|
|
|
inc |
|
|
|
|
|
|
|
|
|
dec |
|
|
|
|
||||
5 |
|
|
|
|
|
push |
|
|
|
|
|
|
|
|
|
pop |
|
|
|
|
||||
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
jo |
jno |
jb |
|
jnb |
je |
|
jne |
jbe |
|
jnbe |
js |
jns |
jp |
|
jnp |
|
jl |
|
jnl |
jle |
|
jnle |
|
|
add, |
or, |
add, adc, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
adc, sbb, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
8 |
|
sbb, sub, |
test |
xchg |
|
|
mov |
|
|
lea |
mov |
|
pop |
|||||||||||
|
and, sub, |
|
|
|
|
|
||||||||||||||||||
|
|
cmp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
xor, cmp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
nop |
|
|
|
|
xchg |
|
|
|
|
|
cbw |
cwd |
call |
|
wait |
|
pushf |
|
popf |
sahf |
|
lahf |
A |
|
mov |
|
movs |
cmps |
test |
|
stos |
|
lods |
scas |
|||||||||||||
B |
|
|
|
|
|
|
|
|
|
|
mov |
|
|
|
|
|
|
|
|
|
|
|
||
C |
|
|
retn |
les |
|
lds |
mov |
|
|
|
retf |
|
int |
|
into |
|
iret |
|||||||
D |
rol, ror, rcl, |
rcr, |
|
aam |
|
aad |
|
|
xlat |
|
|
|
|
esc |
|
|
|
|
|
|
||||
shl, shr, sar |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
E |
loopne |
loope |
loop |
jcxz |
|
in |
out |
|
call |
|
jmp |
|
in |
|
out |
|
||||||||
|
|
|
|
|
|
|
|
|
|
test, not, |
|
|
|
|
|
|
|
|
|
|
|
inc, |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dec, |
|||
|
|
|
|
|
|
|
|
|
|
neg, mul, |
|
|
|
|
|
|
|
|
|
inc, |
||||
F |
lock: |
|
repne: |
repe: |
hlt |
|
cmc |
clc |
stc |
cli |
|
sti |
cld |
std |
call, |
|||||||||
|
|
imul, div, |
|
dec |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
jmp, |
|||||
|
|
|
|
|
|
|
|
|
|
idiv |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
push |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Старшие разряды первого байта команды указаны в первом столбце, а младшие — в первой строке.
ПРИЛОЖЕНИЕ C. УПРАВЛЕНИЕ ПРОГРАММОЙ МОНИТОР СИСТЕМЫ «МИКРОЛАБ 1810»
Управление программой Монитор системы «Микролаб 1810» осуществляется при помощи клавиатуры, расположенной на плате. Подробное описание того, как производится управление приведено в описании лабораторной работы 2 (см. 2.3). Это приложение является всего лишь «памяткой», кратко описывающей основные операции.
При описании используются следующие соглашения:
1.Описания читаются слева на право.
2.Конкретные кнопки, которые должны быть нажаты изображаются соответствующей пиктограммой.
3.Для группировки действий производится при помощи рамок.
4.Значения, которые необходимо вводить набраны обычным шрифтом.
5.Возможность повторения действия обозначена значком « ».
6.Необязательность совершения действия обозначена значком « ? ».
Начало работы
СБРОС
Просмотр и модификация содержимого регистров
Перебор регистров
|
|
? |
|
? |
|
|
Кнопка |
|
|
|
|
1 |
Новые |
, |
Новые |
. |
|
РГ/BX |
регистра |
данные |
данные |
||
|
|
|
Просмотр и модификация памяти по байтам |
|
|
|
||||
|
? |
|
|
Перебор байтов |
|
||
|
|
|
|
? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
Сегмент |
: |
Смещение |
, |
Новые |
. |
|
БТ/AX |
данные |
||||||
|
|
|
|
|
|
67
Просмотр и модификация памяти по словам |
|
|
|
||||
|
? |
|
|
Перебор байтов |
|
||
|
|
|
|
? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
Сегмент |
: |
Смещение |
, |
Новые |
. |
|
СЛ/DI |
данные |
||||||
|
|
|
|
|
|
||
Передача управления пользовательской программе |
|
||||||
|
|
? |
|
|
|
|
|
|
? |
|
|
|
? |
|
|
|
|
|
|
|
|
|
|
2 |
Сегмент |
: |
Смещение |
, |
Смещение |
. |
|
ПУСК/CX |
останова |
||||||
|
|
|
|
|
|
||
Пошаговое выполнение программы |
|
|
|
|
|||
|
|
? |
|
|
|
|
|
|
? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
Сегмент |
: |
Смещение |
, |
|
. |
|
|
ШАГ/DX |
|
|
68