←предыдущая следующая→
1 2 3 4 5 6 7 8
32-разрядном двойном слове, 16-разрядном слове или 8-разрядном
байте. Все операции предполагают представление чисел в допол-
нительном коде. Знаковый бит расположен в бите 7 в байте, в
бите 15 в слове и в бите 31 в двойном слове. Он равен нулю для
положительных чисел и единице для отрицательных. Поскольку
этот старший бит используется как знаковый, то 8-разрядное
(байт) целое число может изменяться в диапазоне от -128 до
+127, 16-разрядное (слово) целое число в диапазоне от -32768
до +32767, а 32-разрядное (двойное слово) целое число в диапа-
зоне от -2Е31 до +2Е31-1. Нулевое значение имеет положительный
знак.
Обычный тип - беззнаковое двоичное значение, содержащееся
- 4 -
в 32-разрядном двойном слове, 16-разрядном слове или 8-разряд-
ном байте. Все биты определяют величину числа.
Строка - непрерывная последовательность байтов, слов или
двойных слов. Строка может содержать от 0 до 2Е32 -1 байтов
или 4 Гбайтов.
4. Регистры
Регистр является устройством временного хранения данных и
используется с целью облегчения арифметических, логических и
пересылочных операций. Регистры МП 80386 являются расширением
регистров прежних МП 8086, 80186, 80286. Все 16-разрядные ре-
гистры МП предыдущих поколений содержатся внутри 32-разрядной
архитектуры.
Микропроцессор 80386 включает шесть непосредственно
доступных программисту регистров селекторов сегментов, которые
содержат указатели сегментов. Значения этих селекторов могут
быть загружены при исполнении программы и являются специфичны-
ми для задачи. Это значит, что регистры сегментов перезагружа-
ются автоматически при переключении МП 80386 на другую задачу.
За регистрами селекторов сегментов стоят реальные регистры
кэш-памяти сегментов, которые содержат описания сегментов,
указываемых селектором. Это сделано на аппаратном уровне для
того, чтобы избежать дополнительной выборки из памяти в слу-
чае, когда требуется описание сегмента.
4.1. Регистры общего назначения
Восемь регистров общего назначения имеют длину в 32 бит и
содержат адреса или данные. Они поддерживают операнды-данные
длиной 1, 8, 16, 32 и 64 бит; битовые поля от 1 до 32 бит:
операнды-адреса длиной 16 и 32 бит. Эти регистры называются
EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP.
Доступ к младшим 16 бит этих регистров выполняется неза-
висимо. Это делается в большинстве ассемблеров при использова-
нии 16-разрядных имен регистров: AX, BX, CX, DX, SI, DI, BP,
SP.
4.2. Регистр системных флагов
Регистр EFLAGS управляет вводом-выводом, маскируемыми
прерываниями, отладкой, переключением задач и включением
- 5 -
исполнения в режиме виртуального МП 8086 в защищенной многоза-
дачной среде - все это в дополнение к флагам состояния, кото-
рые отражают результат исполнения команды. Младшие 16 бит его
представляют собой 16-разрядный регистр флагов и состояния МП
80286, называемый FLAGS, который наиболее полезен при исполне-
нии программ для МП 8086 и 80286.
4.2. Регистры сегментов
Шесть 16-разрядных регистров содержат значения селекторов
сегментов, которые указывают на текущие адресуемые сегменты
памяти. Ниже перечислены эти регистры.
Регистр сегмента программы (CS) - указывает на сегмент,
который содержит текущую последовательность исполняемых ко-
манд. Процессор выбирает все команды из этого сегмента,
используя содержимое счетчика команд как относительный адрес.
Содержимое CS изменяется в результате выполнения внутрисег-
ментных команд управления потоком, прерываний и исключений. Он
не может быть загружен явным способом.
Регистр сегмента стека (SS). Вызовы подпрограмм, записи
параметров и активизация процедур обычно требуют области памя-
ти, резервируемой под стек. Все операции со стеком используют
регистр SS при обращении к стеку. В отличие от регистра CS ре-
гистр SS может быть загружен явно с помощью команды программы.
Остальные четыре регистра являются регистрами сегментов
данных (DS, ES, FS, GS), каждый из которых адресуется текущей
исполняемой программой. Доступ к четырем раздельным областям
данных имеет целью повысить эффективность программ, позволяя
им обращаться к различным типам структур данных. Содержимое
этих регистров может быть заменено под управлением программы.
При использовании регистров сегментов МП 80386 с каждым
выбранным сегментом связывает базовый адрес. При адресации
единицы данных внутри сегмента к базовому адресу сегмента до-
бавляется 32-разрядный относительный адрес. Если сегмент выб-
ран загрузкой селектора сегмента в регистр сегмента, то коман-
дам манипуляции данными нужен только этот относительный адрес.
4.3. Регистры управления сегментированной памятью
Регистр таблицы глобальных дескрипторов (GDTR). Содержит
32-разрядный линейный адрес и 16-разрядную границу таблицы
глобальных дескрипторов.
- 6 -
Регистр таблицы локальных дескрипторов (LDTR). Содержит
16-разрядный селектор для таблицы локальных дескрипторов. Так
как эта таблица является специфичным для задачи сегментом, то
она определяется значением селектора, хранимым в регистрах
системного сегмента. Регистр дескриптора сегмента, связанный с
этой таблицей, програмно недоступен.
Регистр таблицы дескрипторов прерываний (IDTR). Указывает
на таблицу точек входа в программы обработки прерываний. Ре-
гистр содержит 32-разрядный линейный базовый адрес и 16-раз-
рядную границу таблицы дескрипторов прерываний (IDT).
Регистр задачи (TR). Указывает на информацию, необходимую
процессору для определения текущей задачи. Регистр TR содержит
16-разрядный селектор дескриптора сегмента состояния задачи.
Поскольку этот сегмент специфичен для задачи, то он определя-
ется значениями селекторов, хранящихся в регистрах системного
сегмента. Заметим, что с каждым регистром системных сегментов
связан программно недоступный регистр дескриптора сегмента.
4.5. Указатель команд
Расширенный указатель команд (EIP) является 32-разрядным
регистром. Он содержит относительный адрес следующей команды,
подлежащей выполнению. Относительный адрес отсчитывается от
начала сегмента текущей программы. Указатель команд не-
посредственно не доступен программисту, но он управляется явно
командами управления потоком, прерываниями и исключениями.
Младшие 16 бит регистра EIP называются IP и могут быть
использованы процессором независимо. Это свойство полезно при
исполнении команд МП 8086 и 80286, которые имеют только ре-
гистр IP.
4.6. Регистры управления
МП 80386 имеет три 32-разрядных регистра управления (CR0,
CR2 и CR3, а CR1 зарезервирован фирмой Intel), в которых хра-
нятся состояния машины или глобальные состояния. Глобальное
состояние - это такое состояние, к которому может получить
доступ любой
←предыдущая следующая→
1 2 3 4 5 6 7 8
|
|