December 17 2017 04:19:32
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
Общий формат команд OPC
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ

Код операции ОРС (operation code) занимает 1 или 2 байта. Во многих командах пересылок, а также в логических и арифметических командах первый байт ОРС содержит бит w, значение которого определяет разрядность операндов: w = 0 - операция с байтами; w = 1 - операция со словами (16 или 32 разряда). Разрядность слов (16 или 32 разряда) определяется режимом работы процессора. В реальном режиме и режиме виртуального 8086 по умолчанию используются 16-разрядные слова. В защищенном режиме разрядность устанавливается значением бита D в дескрипторе сегмента команд. При выполнении отдельных команд разрядность операндов может меняться соответствующим префиксом (см. табл. 2.14).

ОРС
(1 или 2 байт)
MODR/M
(0 или 1 байт)
SIB
(0 или 1 байт)
DISP
(0,1,2 или 4 байт)
IMM
(0,1,2 или 4 байт)

Рис. 2.11. Общий формат команд

В ряде команд первый байт ОРС содержит поля reg или sreg, определяющие выбор используемых регистров. Трехбитовое поле reg задает выбираемый регистр в соответствии с разрядностью обрабатываемых операндов (табл. 2.6). Поле sreg определяет выбор сегментных регистров (табл. 2.7). Двухбитовые коды sreg (указаны в скобках) используются для выборки регистров CS, SS, DS, ES в программах, написанных для микропроцессоров 8086, в которых регистры FS, GS отсутствовали.

Байт адресации MODR/M содержит три поля (рис. 2.12). Поля MOD и R/M задают адрес одного из операндов, который может храниться в регистре или ячейке памяти. Кодировка этих полей определяет выбираемый способ адресации.

В одноадресных командах поле REG/OPC содержит дополнительные биты кода операции. В двухадресных командах поле REG содержит код регистра, в котором хранится второй из операндов. Тип команды (одно- или двухадресная) определяется первым битом ОРС. При этом в ОРС содержится бит d, который задает выбор регистров, используемых в качестве источника и приемника информации при выполнении ряда двухадресных арифметических и логических операций типа регистр-регистр:

d = 0 - код источника содержится в поле REG/OPC, код приемника - в поле R/M; d = 1 - код источника содержится в поле R/M, код приемника - в поле REG/OPC.

Кодировка регистров указана в табл. 2.6,2.7.

Для реализации ряда способов адресации используется байт SIB. Он содержит 3-битные поля INDEX и BASE, определяющие выбор регистров, используемых в качестве индексного и базового регистров, и поле SS, задающее масштабный коэффициент для модификации значения индекса (см. рис. 2.12). Правила формирования адреса при использовании байта SIB изложены ниже.

Если поле MOD байта MODR/M имеет значение 00 (при некоторых значениях R/M) или 01, 10, то для формирования адреса используется 8-, 16- или 32-разрядное смещение (табл. 2.8, 2.9). Это смещение задается соответствующими байтами в поле команды, которые располагаются после байтов адресации.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.02 секунд 2,298,815 уникальных посетителей