Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 45

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 39 40 41 42 43 44 < 45 > 46 47 48 49 50 51 .. 528 >> Следующая

MTRRdefType.
Остальные биты в регистрах MTRRphysBasen, MTRRphysMaskn резервированы, и
процессор реализует прерывание типа #GP при попытке записи в них
ненулевых значений.
Таким образом, архитектура Р6 позволяет реализовать большой набор
вариантов использования кэш-памяти и различных разделов основной памяти,
что обеспечивает возможности эффективного применения процессоров для
решения широкого круга задач с помощью разнообразных типов современной
памяти и устройств ввода/вывода.
2.1.5. ФОРМАТЫ КОМАНД И СПОСОБЫ АДРЕСАЦИИ
Набор команд, реализуемый процессорами Р6, обеспечивает выполнение
операций над операндами, которые находятся в регистре, памяти или
непосредственно в команде. В набор входят безадресные, одно- и
двухадресные команды. Процессор реализует следующие шесть типов
двухадресных команд:
• регистр - регистр;
• память - регистр;
• непосредственные данные - регистр;
• регистр - память;
• память - память;
• непосредственные данные - память.
Операнды могут содержать 8,16 или 32 разряда. Для реализации различных
типов команд определены форматы, задающие порядок размещения информации о
выполняемой операции и способах выбора операндов.
Общий формат команды (рис. 2.11) содержит следующие поля: ОРС - код
операции, MODR/M, SIB-байты адресации, DISP-байты смещения, IMM -
непосредственно заданный операнд. Для конкретной команды отдельные поля
могут иметь различное число байт или вообще отсутствовать. Поэтому
команды могут содержать от 1 до 12 байт. Перед кодом операции в ряде
случаев вводятся один или несколько префиксных байтов, модифицирующих
выполняемую команду.
Код операции ОРС (operation code) занимает 1 или 2 байта. Во многих
командах пересылок, а также в логических и арифметических командах первый
байт ОРС содержит бит w, значе-
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
ОРС MODR/M SIB DISP IMM
(1 или 2 байт) (0 или 1 байт) (0 или 1 байт) (0,1,2 или 4 байт)
(0,1,2 или 4 байт)
Рис. 2.11. Общий формат команд
ние которого определяет разрядность операндов: w=0- операция с байтами; w
= 1 - операция со словами (16 или 32 разряда). Разрядность слов (16 или
32 разряда) определяется режимом работы процессора. В реальном режиме и
режиме виртуального 8086 по умолчанию используются 16-разрядные слова. В
защищенном режиме разрядность устанавливается значением бита D в
дескрипторе сегмента команд. При выполнении отдельных команд разрядность
операндов может меняться соответствующим префиксом (см. табл. 2.14).
В ряде команд первый байт ОРС содержит поля гед или sreg, определяющие
выбор используемых регистров. Трехбитовое поле гед задает выбираемый
регистр в соответствии с разрядностью обрабатываемых операндов (табл.
2.6). Поле sreg определяет выбор сегментных регистров (табл. 2.7).
Двухбитовые коды sreg (указаны в скобках) используются для выборки
регистров CS, SS, DS, ES в программах, написанных для микропроцессоров
8086, в которых регистры FS, GS отсутствовали.
Байт адресации MODR/M содержит три поля (рис. 2.12). Поля MOD и R/M
задают адрес одного из операндов, который может храниться в регистре или
ячейке памяти. Кодировка этих полей определяет выбираемый способ
адресации.
В одноадресных командах поле REG/ОРС содержит дополнительные биты кода
операции. В двухадресных командах поле REG содержит код регистра, в
котором хранится второй из операндов. Тип команды (одно- или
двухадресная) определяется первым битом ОРС. При этом в ОРС содержится
битс!, который задает выбор регистров, используемых в качестве источника
и приемника информации при выполнении ряда двухадресных арифметических и
логических операциий типа регистр-регистр:
d = 0 - код источника содержится в поле REG/ОРС, код приемника - в поле
R/M;
d = 1 - код источника содержится в поле R/M, код приемника - в поле
REG/OPC.
Кодировка регистров указана в табл. 2.6,2.7.
Для реализации ряда способов адресации используется байт SIB. Он содержит
3-бит-ные поля INDEX и BASE, определяющие выбор регистров, используемых в
качестве индексного и базового регистров, и поле SS, задающее масштабный
коэффициент для модификации значения индекса (см. рис. 2.12). Правила
формирования адреса при использовании байта SIB изложены ниже.
Если поле MOD байта MODR/M имеет значение 00 (при некоторых значениях
R7M) или 01, 10, то для формирования адреса используется 8-, 16- или 32-
разрядное смещение (табл. 2.8, 2.9). Это смещение задается
соответствующими байтами в поле команды, которые располагаются после
байтов адресации.
При выполнении операций с непосредственной адресацией один из операндов
imm задается в последних байтах команды (поле IMM на рис. 2.11). В этом
случае ОРС ряда команд содержит бит s, определяющий способ использования
непосредственно задаваемых данных. Если операция выполняется над байтами
(ОРС команды содержит бит w = 0), то в качестве операнда используется
один байт непосредственных данных im8, содержащихся в формате команды.
Предыдущая << 1 .. 39 40 41 42 43 44 < 45 > 46 47 48 49 50 51 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed