Курс лекций по вычислительной технике



         

Структура команды (форматы команд) IA-


Команды могут состоять из следующих элементов (полей):

 

 

Кол.байт

Назначение

0-1

Префикс

1

Код операции

0-1

Дополнительны код операции MODR/M

0-1

SIB

0,1,2,4

Смещение(Dis)

0,1,2,4

Непосредственный(Im)

операнд

 

1.Префикс – (0-1) байт: уточняет или модифицирует выполнение команды. По существу это тоже дополнительный код операции. Типы префиксов:

- префикс размера операнда - переключает разрядность операнда с 16 на 32 (и наоборот); 386+

- префикс размера адреса - переключает разрядность адреса с 16 на 32 (и наоборот); 386+

- префикс замены  сегмента - подключает  альтернативный,  вместо заданного по умолчанию (26-ES;36-SS;2E-CS;3E-DS).

- префикс блокировки локальной шины на время операции. LOCK (F0)

- префикс повторения -  используется  в  командах обработки строк (F2,F3)

2. Код операции – 1  байт.

3. Дополнительны код операции и режим адресации MODR/M (0-1)байт.

4. SIB – масштаб – индекс - база. Его наличие определяется кодом операции. Используется для расширения возможности адресации. 386+

5. Смещение (Dis) – (0,1,2,4) байта. Целое число со знаком.

6. Непосредственный операнд (Im) - (0,1,2,4) байта.

      Обязательным является только код операции.

Однобайтовый код операции (без операндов или с одним операндом).

 

 

7…    0

7… 1  0

7…4 3 210

  Коп

Коп   w

Коп w REG

 

 

    

 

 

Обычно занимает один байт (первичный код операции), но может  занимать и  последующие байты (вторичный код операции).

 

Как правило "w" определяет размер операнда

    w=0  - 8бит;

    w=1 - 16бит (в 80386+ может быть и 32 бита, что определяется полем «Dd» в дескрипторе сегмента), а с помощью префикса размера операнда размер операнда может быть заменён на альтернативный.

 

     Поле "REG" определяет номер регистра            

REG(R/M)

W=0

W = 1

16

32

0

AL

AX

EAX

1

CL

CX

ECX

2

DL

DX

EDX

3

BL

BX

EBX

4

AH

SP

ESP

5

СН

EBP

6

DH

SI

ESI

7

BH

DI

EDI

<


Содержание  Назад  Вперед