ВУЗ:
Составители:
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 -
Страницы
- « первая
- ‹ предыдущая
- …
- 42
- 43
- 44
- 45
- 46
- …
- следующая ›
- последняя »