Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Assembler (Уч_пос_Лаб_Ч1).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.43 Mб
Скачать

5. Программная модель 32-разрядных процессоров i80x86

На рис. 4 представлена программная модель 32-разрядных процессоров i80x86 (реальный режим). Все регистры, не имеющие в своём имени начальную букву E (Extended), составляли программную модель базового процессора i8086 (за исключением двух новых сегментных регистров fs и gs). Младшие 8- или 16-битные регистры, имеющие имена, могут использоваться самостоятельно. Первую группу из 8-ми регистров (eax, ebx, esp) составляют регистры общего назначения (РОН), использующиеся для хранения данных или адресов. Вместе с тем, каждый из РОН в некоторых командах выполняет специальные функции, что нашло отражение в названии регистров.

Eax/ax/ah/alаккумулятор, используется в подавляющем числе команд. Часто применяемые команды, использующие данный регистр, имеют укороченный формат.

Ebx/bx/bh/bl – базовый регистр. Получил своё название из-за выполняемой функции базовой адресации (регистр bx) в процессоре i8086. В старших моделях процессоров базовая адресация вводится любым расширенным РОН.

Ecx/cx/ch/cl – регистр, используется как счётчик числа повторений в командах сдвига, в циклических и в строковых командах.

Edx/dx/dh/dl – регистр данных, выполняющий функцию арифметического расширителя в командах умножения и деления.

Индексные регистры Esi/si и Edi/di получили своё название из-за одноимённой адресации в базовом процессоре i8086 (регистры si и di), где содержат величину смещения данных и команд от начала базового адреса соответствующего сегмента. В старших моделях процессоров индексная адресация вводится любым расширенным РОН.

В процессорах i80x86 имеется четыре типа сегментных регистра, которые в IBM PC используются по умолчанию в соответствии с их функциональной специализацией.

CS – code segment – содержит адрес сегмента кода программы. Логический адрес команды определяется указателем CS:IP, где IP – instruction pointer – программный счётчик.

Рис. 4. Регистры 32-разрядных процессоров i80x86

DS – date segment -содержит сегментную часть адресного указателя данных DS:EA, где EA – effective address -адресное выражение, определяющее смещение переменной в памяти данных. Адресное выражение не должно включать имя регистра Ebp/bp.

SS – stack segment – содержит сегментную часть адресного указателя стека SS:SP, где SP – указатель вершины стека. Стек можно также адресовать с использованием адресации, аналогичной сегменту данных SS:EA, где EA – адресное выражение, включающее имя регистра Ebp/bp.

ES – extra segment – дополнительный сегмент данных, используется для адресации строки-приёмника в строковых командах. Для адресации других дополнительных сегментов данных предназначены регистры GS и FS. Назначение сегментных регистров, обусловленное их функциональной специализацией, а также возможность их переназначения с помощью префикса, поясняется в табл. 3.

Регистр флагов является специальным регистром, в котором хранится слово состояние программы и процессора (Program Status WordPSW). Существует два основных типа флагов: управляющие флаги и флаги состояния.

Таблица 3

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]