Пример: Глобальная сеть INTERNET
Я ищу:
На главную  |  Добавить в избранное  

Главная/

Радиоэлектроника, компьютеры и периферийные устройства. /

80386 процессор

←предыдущая следующая→
1 2 3 4 5 6 7 8 

любой из логических блоков системы или которое управля-

ет этими блоками. Вместе с регистрами системных адресов эти

регистры хранят информацию о состоянии машины, которая влияет

на все задачи в системе. Для доступа к регистрам управления

определены команды их загрузки и сохранности содержимого.

- 7 -

Системным программистам регистры управления доступны

только через варианты команды MOV, которые позволяют их загру-

жать или сохранять в регистрах общего назначения.

4.7. Регистры отладки

Шесть доступных программисту регистров отладки (DR0-DR3,

DR6 и DR7) расширяют возможности отладки в МП 80386, они уста-

навливают точки останова по данным и позволяют устанавливать

точки останова по командам без модификации сегментов программ.

Регистры DR0-DR3 предназначены для четырех линейных точек

останова. Регистры DR4 и DR5 зарезервированы фирмой Intel для

будущих разработок. Регистр DR6 показывает текущее состояние

точек останова, а регистр DR7 используется для установки точек

останова.

4.8. Буфер ассоциативной трансляции

Буфер ассоциативной трансляции (TLB) - это кэш-память,

используемая для трансляции линейных адресов в физические.

Механизм проверки TLB является уникальным для МП 80386 и

может быть не реализован в том же виде в будущих процессорах.

Программы, которые используют этот механизм в его нынешнем ви-

де, могут оказаться несовместимыми с будущими процессорами.

5. Система команд

5.1. Формат команд

Команды МП 80386 состоят из отдельных элементов и могут

иметь различные форматы. Из всех описанных ниже элементов

только один (код операции, Коп) обязательно присутствует в лю-

бой команде. Остальные элементы могут отсутствовать, что опре-

деляется характером операции, а также местоположением и типом

операндов.

Команды состоят из следующих элементов: необязательных

префиксов; одного или двух байтов кодов операции; возможно -

описателя адреса, который включает байт Mod R/M и байт масшта-

ба, индекса и базы; смещения - если требуется; поля не-

посредственных данных - если требуется.

Префиксы - один или несколько байтов, предшествующих ко-

манде и модифицирующих операцию этой команды. Имеется 4 типа

- 8 -

префиксов.

1. Повторение - используется с командами обработки строк;

заставляет команду воздействовать на каждый элемент строки.

2. Размер операнда - переключает разрядность операндов,

устанавливая их 32-разрядными или 16-разрядными.

3. Размер адреса - переключает разрядность адреса, опре-

деляя образование 32-разрядных или 16-разрядных адресов.

4. Замена сегмента - в явной форме указывает, какой сег-

ментный регистр должна использовать команда. Префикс отменяет

действующий по умолчанию выбор сегментного регистра, обычно

осуществляемый МП 80386 при выполнении этой команды.

Код операции (Коп) - описывает операцию, выполняемую ко-

мандой. Некоторым командам присущи несколько кодов операций,

каждый из которых описывает определенный вариант операции.

Описатель регистра - в команде могут быть описаны один

или два регистра в качестве операндов. Описатель регистра мо-

жет присутствовать как в байте кода операции, так и в байте

описателя режима адресации.

Описатель режима адресации. Этот элемент, если он

присутствует, описывает, является ли операнд содержимым ре-

гистра или ячейки памяти. Если операнд находится в памяти,

описатель режима указывает, надо ли использовать смещение, ин-

дексный регистр, регистр базы и масштабирование.

Байты MOD R/M и SIB. Большинство команд, ссылающихся на

операнд, находящийся в памяти, содержат после байта основного

кода операции еще байт формы адресации. Этот байт описывает

используемую форму адреса. Определенные значения кода поля MOD

R/M указывают на наличие второго адресного байта SIB.

Байты MOD R/M и SIB содержат следующую информацию:

- тип индексации или номер регистра, используемого в ко-

манде;

- используемый регистр или дополнительную информацию о

выборе команды;

- информацию о базе, индексе и масштабе;

Смещение. Если описатель режима адресации указывает, что

при вычислении адреса операнда будет использовано смещение, в

состав кода команды включается поле смещения. Смещение

представляет собой 8-, 16- или 32-разрядное целое число со

знаком. 8-разрядная форма используется в тех случаях, когда

значение смещения невелико.

Непосредственный операнд (данное). Если этот элемент

присутствует, он представляет значение операнда команды. Не-

- 9 -

посредственные операнды могут быть 8-, 16- или 32-разрядными.

В случаях когда 8-разрядный непосредственный операнд использу-

ется в команде вместе с 16- или 32-разрядным операндом, про-

цессор автоматически увеличивает размер 8-разрядного операнда

путем расширения его знакового разряда.

5.2. Описание обозначения

+rb, +rw, +rd Код регистра (от 0 до 7), который складыва-

ется с указанным слева от знака плюс шестнадцетиричным числом

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

ены следующие коды :

rb rw rd

AL=0 AX=0 EAX=0

CL=1 CX=1 ECX=1

DL=2 DX=2 EDX=2

BL=3 BX=3 EBX=3

AH=4 SP=4 ESP=4

CH=5 BP=5 EBP=5

DH=6 SI=6 ESI=6

BH=7 DI=7 EDI=7

/цифра Цифра, стоящая справа от косой черты, имеет, вооб-

ще говоря, значение от 0 до 7. Она показывает, что в байте MOD

R/M указывается только один операнд r/m (регистр/память). Сама

цифра помещается в поле reg и образует расширение кода опера-

ции.

/r Обозначение показывает, что байт MOD R/M содержит два

операнда (reg и r/m).

cb, cw, cd, cp Величина размером 1 байт (cb), 2 байта

(cw), 4 байта (cd) или 6 байт (cp) следует за кодом операции и

определяет относительный адрес, а также, возможно новое значе-

ние программного сегмента.

ib, iw, id Непосредственный операнд размером 1 байт (id),

2 байта (iw) или 4 байта (id) следует за байтами кода опера-

ции, MOD R/M или SIB. Код операции указывает, является ли опе-

ранд знаковой величиной.

imm8 Непосредственный операнд размером 1 байт. Величина

imm8 является знаковой величиной между -128 и +127 включитель-

но. В командах, где размер второго операнда составляет слово

или двойное слово, величина imm8 расширяется до слова или

- 10 -

двойного слова. Старшие байты расширенной величины заполняются

старшим битом непосредственного операнда.

imm16 Непосредственный операнд размером 1 слово. Исполь-

←предыдущая следующая→
1 2 3 4 5 6 7 8 


Copyright © 2005—2007 «RefStore.Ru»