Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Відповіді на залік по Ігнату(lg).doc
Скачиваний:
3
Добавлен:
14.09.2019
Размер:
3.87 Mб
Скачать

1.4.1 Формат команд.

В залежності від типу команд формат може змінюватись від 1 до 6 байтів. Однобайтні команди керують флагами МП або одним з його регістрів. Для більш складних команд вся інформація про довжину команди міститься у першому з двох байтів, згідно з типовим форматом, наведеним на мал.3.1.

Мал. 3.1. Формат команд МП ВМ86

Перші шість розрядів в багатобайтній команді являють собою код команди.

Розряд D (Direction) визначає напрямок команди. При D = 1 регістр, що зазначений в розрядах REG другого байта, визначається як приймач результату виконання команди, а при D = 0 – як джерело інформації.

Розряд W (Word) визначає довжину даних. При W = 1 команда оперує з двома байтами чисел, а при W = 0 – з одним байтом.

Розряд MOD – адресація до регістра/пам’яті з використання зсуву. Перші два розряди MOD в другому байті команди визначають використання командою інформації з пам’яті або з регістрів (табл. 3.1).

Розряд REG (Register) вказує на регістр, що застосовується у команді (табл. 3.2).

Розряд R/M (Register/Memory) визначає тип 2-го операнда. Якщо MOD = 11 (команда типу регістр – регістр), то R/M визначає тип другого регістра. Якщо ж MOD визначає, що другий операнд знаходиться у пам’яті, то R/M вказує, яким чином визначається його ефективна адреса, тобто зміщення, яке додається до сегменту для знаходження фізичної адреси (табл. 3.3).

В 36 байтах команди міститься інформація про величину постійного зсуву, а також необхідні константи, що зазначаються у команді.

Rem. Постійний зсув поже задаватися у команді одним байтом D8 або двома – D16. Як витікає з табл. 3.3 окрім зазначення постійного зміщення при розрахунку ефективної адреси може бути використаний вміст регістрів BP або BX, SI або DI, а також їх сума. Розряди MOD теж визначають кількість байтів постійного зсуву, що використовуються для розрахунку ефективної адреси.

Таблиця 3.1.

MOD

Зміст операції

00

Адресація до пам’яті без визначення змішення (крім випадку R/M = 110)

01

Адресація до пам’яті з використанням 1-байтного зміщення

10

Адресація до пам’яті з використанням 2-байтного зміщення

11

Адресація до регістра

Таблиця 3.2.

Вміст розрядів (REG)

W = 0

W = 1

000

AL

AX

001

CL

CX

010

DL

DX

011

BL

BX

100

AH

SP

101

CH

BP

110

DH

SI

111

BH

DI

Таблиця 3.3.

R/M

EU (Ефективна адреса)

MOD = 00

MOD = 01

MOD = 10

000

BX + SI

BX + SI + D8

BX + SI + D16

001

BX + DI

BX + DI + D8

BX + DI + D16

010

BP + SI

BP + SI + D8

BP + SI + D16

011

BP + DI

BP + DI + D8

BP + DI + D16

100

SI

SI + D8

SI + D16

101

DI

DI + D8

DI + D16

110

Безпосередня адресація

BP + D8

BP + D16

111

BX

BX + D8

BX + D16

3 МЦ,

10 Т

Адресація: безпосередня

(RL)¬(<B2>)

(Load register pair immediate)