Архитектура ЭВМ и систем. Коваль А.С - 44 стр.

UptoLike

Составители: 

44
Всего существует четыре источника операндов: тело команды, регистр,
память и порт ввода/вывода. В первом случае операнд называется непо-
средственным.
Первый байт команды содержит код операции (КОП), в состав которого
могут входить специальные разряды d, s и w. При w=1 операции выполня-
ются с 16-разрядными словами, при w=0 – с байтами. Разряд d определяет
направление передачи данных
в двухоперандных командах: из регистра в
регистр/память (d=0) или из регистра/памяти в регистр (d=1). S – определя-
ет расширение 8-битных непосредственных данных до полного размера
(s=1) или нет (s=0). При некоторых сочетаниях команд и методов адреса-
ции (регистровый метод адресации) положение операнда может задаваться
непосредственно в байте кода операции (см. следующий раздел), но чаще
для этого используется т.н. «постбайт».
В командах, имеющих длину 2 и более байта, второй байт называется
постбайтом. Он выполняет функции кодирования адресов операндов.
Байты 3 - 6 присутствуют в команде в зависимости от типа адреса опе-
ранда, описанного постбайтом и наличия непосредственного операнда.
Постбайт состоит из трех полей: режима - MOD, регистра - REG и ре-
гистра/памяти - R/M. Поле MOD занимает 2 бита (6 и 7) постбайта. Поле
REG занимает 3 бита (3-5) постбайта. Поле R/M занимает 3 бита (0-2) по-
стбайта. Полями MOD и R/M совместно кодируется тип адреса операнда,
находящегося в памяти или регистре. 32 значения этих полей определяют
нахождение операнда 24 возможными методами адресации либо в одном
из 8 регистров.
Ниже приведена структура байта кода операции и постбайта
, а в таб-
лицах показано формирование адресов регистровых операндов и адресов
операндов памяти. DISP8 и DISP16 – смещения длиной 8 и 16 бит, распо-
ложенные в команде непосредственно за байтом адресации.
КОП Постбайт
7 1 0 7 6 5 4 3 2 1 0
S/D W MOD REG/OC R/M
Рис. 2.7 Формат байта КОП и постбайта
Таблица 2 Формат поля REG
Регистры
Поле
REG
W=1 W=0
Сегментные регистры
000 AX AL ES
001 CX CL CS
010 DX DL SS
011 BX BL DS
100 SP AH -
                                   44
Всего существует четыре источника операндов: тело команды, регистр,
память и порт ввода/вывода. В первом случае операнд называется непо-
средственным.
   Первый байт команды содержит код операции (КОП), в состав которого
могут входить специальные разряды d, s и w. При w=1 операции выполня-
ются с 16-разрядными словами, при w=0 – с байтами. Разряд d определяет
направление передачи данных в двухоперандных командах: из регистра в
регистр/память (d=0) или из регистра/памяти в регистр (d=1). S – определя-
ет расширение 8-битных непосредственных данных до полного размера
(s=1) или нет (s=0). При некоторых сочетаниях команд и методов адреса-
ции (регистровый метод адресации) положение операнда может задаваться
непосредственно в байте кода операции (см. следующий раздел), но чаще
для этого используется т.н. «постбайт».
   В командах, имеющих длину 2 и более байта, второй байт называется
постбайтом. Он выполняет функции кодирования адресов операндов.
Байты 3 - 6 присутствуют в команде в зависимости от типа адреса опе-
ранда, описанного постбайтом и наличия непосредственного операнда.
   Постбайт состоит из трех полей: режима - MOD, регистра - REG и ре-
гистра/памяти - R/M. Поле MOD занимает 2 бита (6 и 7) постбайта. Поле
REG занимает 3 бита (3-5) постбайта. Поле R/M занимает 3 бита (0-2) по-
стбайта. Полями MOD и R/M совместно кодируется тип адреса операнда,
находящегося в памяти или регистре. 32 значения этих полей определяют
нахождение операнда 24 возможными методами адресации либо в одном
из 8 регистров.
  Ниже приведена структура байта кода операции и постбайта, а в таб-
лицах показано формирование адресов регистровых операндов и адресов
операндов памяти. DISP8 и DISP16 – смещения длиной 8 и 16 бит, распо-
ложенные в команде непосредственно за байтом адресации.


                   КОП               Постбайт
         7                 1  0 7  6 5 4 3 2 1 0
                          S/D W MOD REG/OC    R/M
                 Рис. 2.7 Формат байта КОП и постбайта

                            Таблица 2 Формат поля REG
                Поле   Регистры
                                Сегментные регистры
                REG    W=1 W=0
                 000   AX AL            ES
                 001   CX CL            CS
                 010   DX DL            SS
                 011   BX BL            DS
                 100    SP AH            -