Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
manual-l2only.pdf
Скачиваний:
33
Добавлен:
05.06.2015
Размер:
300.19 Кб
Скачать

обновлено путём повторного нажатия на кнопку

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.XY — присвоение 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]