Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Оргазм_шпоры.docx
Скачиваний:
22
Добавлен:
07.07.2019
Размер:
1.08 Mб
Скачать
  1. Определить назначение, структуру, количество регистров mmx-технологии и расширений sse, sse2

Регистры ММХ-технологии

При реализации ММХ-операций регистры данных FPU используются как 64-разрядные регистры ММ0 – ММ7, где могут храниться несколько целочисленных операндов (восемь 8-разрядных, четыре 16-разрядных, два 32-разрядных или один 64-разрядный), над которыми одновременно выполняется поступившая в процессор команда.

Регистры SSE, SSE-2 расширений

Потоковые команды расширений SSE, SSE-2 используют восемь 128-разрядных регистров. ХММ0 – ХММ7, в которых могут храниться несколько вещественных или целочисленных операндов, и новый регистр состояния и управления MXCSR.

Регистр состояния и управления MXCSR содержит: поле флагов возникновения исключений (разряды 0 – 5), поле маскирования исключений (разряды 7 – 12), поле установления режима округления данных (разряды 13, 14), поле FZ (15 разряд); 6, 16 – 31 разряды не используются.

127 0

 

            

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XMM0

 

Регистр MXCSR

XMM1

 

XMM2

 

31 - 16

15

14 13

12

12

10

 

 

7

 

5

4

 

 

 

0

XMM3

 

F

RC

P

U

0

Z

D

I

R

P

U

0

Z

D

I

XMM4

 

Z

M

M

M

M

M

XMM5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XMM6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XMM7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Определить назначение, структуру, количество основных функциональных регистров ia-32

В процессорах IA-32 можно выделить следующие группы регистров:

Основные функциональные регистры: 1. регистры общего назначения (GPR); 2. указатель команд; 3. регистр флагов; 4. регистры сегментов.

1. Регистры общего назначения. Восемь 32-разрядных регистров (EAX, ECX, EDX, EBS, EBP, ESP, ESI, EDI) предназначены для хранения данных и адресов. Они поддерживают работу с данными разрядностью 1, 8, 16 и 32 бита, битовыми полями длиной от 1 до 32 бит и адресами размером 16 и 32 бита. Младшие 16 разрядов этих регистров (рис.3.2) доступны отдельно при использовании соответствующего имени, например регистр ЕАХ (имя АХ для 16 разрядов).

При операциях с байтами можно отдельно обращаться к младшему байту (разряды 0 – 7) и старшему байту (8 – 15) по именам AL и AH. Доступ к отдельным байтам обеспечивает дополнительную гибкость при операциях с данными.

С труктура регистра общего назначения

2 . Указатель команд. Указатель команд (см. рис) представляет собой 32-разрядный регистр с именем EIP, содержимое которого используется в качестве смещения при определении адреса следующей выполняемой команды. Смещение задается относительно базового адреса сегмента команд CS. Младшие 16 бит      (0 – 15) содержат 16-разрядный указатель команд с именем IP, который используется при 16-разрядной адресации. Указатель команд непосредственно программисту недоступен. Его содержимое изменяется при выполнении команд передачи управления и прерываний. 3. Регистр флагов. Регистр флагов является 32-разрядным, имеет имя EFLAGS. Его разряды содержат признаки результата выполнения команды, управляют обработкой прерываний, последовательностью вызываемых задач, вводом/выводом и рядом других процедур. 4. Регистры сегментов и дескрипторы сегментов. Шесть 16-разрядных сегментных регистров (CS, SS, DS, ES, FS, GS) содержат значения селекторов сегментов, указывающих на текущие адресуемые сегменты памяти. С каждым из них связан программно-недоступный регистр дескриптора сегмента. В защищенном режиме каждый сегмент может иметь размер от 1 байта до 4 Гбайт, в режиме реальных адресов максимальный размер сегмента составляет 64 Кбайта.

Селектор в CS обеспечивает обращение к текущему сегменту команд, селектор в SS — к текущему сегменту стека, селекторы в DS, ES, FS, GS — к текущим сегментам данных. Каждый регистр дескриптора содержит базовый адрес сегмента, 32-разрядный размер сегмента и другие необходимые атрибуты.

Когда в регистр сегмента загружается новое значение селектора, содержимое соответствующего регистра дескриптора автоматически корректируется. В реальном режиме базовый адрес сегмента получается путем сдвига значения селектора на 4 разряда влево (20 разрядов), максимальный размер и атрибуты сегмента в реальном режиме имеют фиксированные значения.