ЧАСТЬ 1

ИНФОРМАТИКА

Электронное учебно-методическое пособие

 

 
 

 

Регистры

В ПК четыре регистра общего назначения [11]: EAX, EBX, ECX, EDX. Они 32-разрядные (об этом здесь и далее говорит первая буква Е). В старых моделях для 8-разрядных PС они именовались А, B, С, D, для 16-разрядных – АХ, BХ, СХ, DX, причём младший байт именовался AL, BL, CL, DL, а старший – AH, BH, CH, DH.

Регистр АХ (AH, AL) чаще всего служит местом хранения результатов вычислений (это аккумулятор), используется в командах умножения, деления, ввода и вывода слов.

Регистр BX чаще хранит сегмент адреса, но может хранить и другие виды данных.

Регистр CX содержит число выполнения определённых операций и указывает длину строковых операций, слова, ввод и вывод с косвенной адресацией.

Регистр DX называют регистром данных. Используется для умножения и деления.

Есть один специфический регистр – EFLAGS (флаговый). В битах этого регистра хранятся флаги результатов выполнения последней операции, флаги состояния процессора, режим работы и т. д. Значения флагов управляют поведением процессора при выполнении условных команд.

Регистры смещений (внутрисегментной адресации) IP, SP, BP, SI, DI используются для хранения относительных адресов ячеек памяти внутри сегментов (смещений относительно начала сегментов).

Адрес выполняемой в данный момент команды хранится в регистре EIP – указателе команд. Он указывает на ячейку основной памяти с выполняемой командой, а для определения реального адреса ещё необходимо использовать регистр сегмента кода.

Есть два регистра-указателя: регистр-указатель базы EBP (смещение начального адреса, отведённого под стек) и регистр–указатель стека ESP (смещение вершины стека). В каждом из них содержится сегментная часть адреса для реального режима. В защищённом режиме там хранится селектор.

Адреса перемещаемых строк данных (многобайтные последовательности произвольной длины) хранятся в регистре индекса-источника ESI и регистре индекса-назначения EDI.

Регистры сегментной адресации CS, DS, SS, ES используются для хранения начальных адресов полей памяти (сегментов).

Первый – регистр сегмента кода CS – содержит значение, которое совместно со значением регистра команд указывает следующую выполняемую команду.

Второй – регистр сегмента данных DS. Обычно он указывает область памяти, в которой содержатся данные. Его значение может комбинироваться со значениями регистров BX, SI и DI для указания определённого байта или слова данных.

Третий регистр называется регистром дополнительного сегмента ES. Это резервный сегментный регистр, чаще применяемый для стековых операций.

Четвертый регистр называется регистром сегмента стека SS. Его значение комбинируется с содержимым указателя стека ESP для указания слова данных, обрабатываемого в данный момент в стеке. Иногда SS комбинируют с EBP.

В регистрах FS и GS хранятся данные.

Управляющие регистры ECR0, ECR1, ECR2, ECR3, ECR4 хранят признаки состояния процессора, общие для всех задач. Они 32-разрядные.

Системные адресные регистры предназначены для ссылок на сегменты и таблицы в защищённом режиме. Они 48-битные.

Регистры GDTR и IDTR программно загружаются 6-байтными операциями, включающими 32-битный линейный базовый адрес (старшие биты) и 16-битный лимит глобальной таблицы дескрипторов и таблицы дескрипторов прерываний.

Следующая группа регистров используется для обработки чисел с плавающей точкой. Регистры для хранения таких чисел могут быть 80-разрядные. Они используются в математическом сопроцессоре и называются регистрами данных FPU или арифметическим стеком. Их 8: с R0 по R7.

Совместно с 15-разрядными регистрами математического сопроцессора и полями регистров тегов (TAG(0) – TAG(7), они тоже 15-разрядные) они производят действия над числами с плавающей точкой.


MMX–команды обрабатывают числа с плавающей точкой, используя для этого 64 младших бита стека сопроцессора. Они могут обрабатывать одновременно 8 однобайтных, четыре 16-разрядных или два 32-разрядных числа.

Новые SIMD-команды обрабатываются в специальных 128-разрядных регистрах XMM (eXtended MultiMedia – это восемь 2-разрядных целых или 4 значения с плавающей точкой одинарной точности). Это инструкции SSE2 (Streaming SIMD Extensions), предназначенные для обработки 3D-графики, кодирования/декодирования видео, а также шифрования данных.

Совместно с этими регистрами используется 32-разрядный регистр состояния/управления MXCSR. Он используется для управления обработкой числовых исключений, установки режима округления и режима очистки, а также чтения флагов состояния ХММ.

 

 
 


© Сибирская государственная геодезическая академия (СГГА), 2011