Регистры процессора

Содержание

Регистр флагов

БитНазваниеРасшифровкаНазначение
0CFCarry flagФлаг переноса
111Установлен в "1"
2PFParity flagФлаг четности
300Установлен в "0"
4AFAuxiliary flagФлаг вспомогательного переноса
500Установлен в "0"
6ZFZero flagФлаг нуля
7SFSign flagФлаг знака
8TFTrace flagФлаг трассировки
9IFInterrupt flagФлаг разрешения прерываний
10DFDirection flagФлаг направления
11OFOverflow flagФлаг переполнения
12,13IOPLI/O Privilege LevelУровень привелегий инструкций ввода-вывода
14NTNested Task FlagФлаг вложенной задачи
1500Установлен в "0"
16RFResume flagФлаг возобновления
17VMVirtual-8086 ModeРазрешение виртуального режима процессора 8086
18ACAlignment CheckРазрешение проверки выравнивания указателей на ОЗУ
19VIFVirtual Interrupt FlagВиртуальный образ флага IF
20VIPVirtual Interrupt PendingУказывает на наличие необслуженного прерывания
21IDIdentification FlagУказывает на поддержку инструкции Команда CPUID
22-3100Установлены в "0"

Вернуться к содержанию

Регистры управления памятью.

НазваниеРасшифровкаНазначение
GDTRGlobal Descriptor Table RegisterСодержит 32-битный базовый адрес и 16-битный размер таблицы GDT
LDTRLocal Descriptor Table RegisterСодержит 16-битный сегментный селектор, 32-битный базовый адрес, 16-битный размер LDT и дескриптор атрибутов
IDTRInterrupt Descriptor Table RegisterСодержит 32-битный базовый адрес и 16-битный размер таблицы IDT
TRTask RegisterСодержит 16-битный сегментный селектор, 32-битный базовый адрес, 16-битный размер TSS и дескриптор атрибутов

Вернуться к содержанию

Управляющие регистры

Назначение управляющих регистров
РегистрНазначение
CR0Содержит системные управляющие флаги
CR1Зарезервирован
CR2Содержит линейный адрес, который вызвал ошибку обращения к странице памяти
CR3 (PDBR)Содержит физический базовый адрес каталога страниц и 2 флага
CR4Содержит группу флагов, которые разрешают некоторые архитектурные расширения

Регистр CR0
БитНазваниеРасшифровкаНазначение
0PEProtection EnableРазрешение защищенного режима
1MPMonitor CoprocessorУправляет взаимодействием инструкции (F)WAIT с флагом TS
2EMEmulationУказывает на отсутствие математического сопроцессора
3TSTask SwitchedРазрешает сохраниение контекста FPU, MMX, SSE и SSE2
4ETExtension TypeУстановлен в "1"
5NENumeric ErrorРазрешает внутренний механизм обработки ошибок сопроцессора
16WPWrite ProtectЗапрещает процедуром на уровне супервизора писать в страницы, доступные только для чтения на уровне пользователя
18AMAlignment MaskРазрешает автоматическую проверку выравнивания
29NWNot Write-through
30CDCache DisableЗапрет кэширования ОЗУ
31PGPagingРазрешает страничную организацию памяти

Регистр CR3
БитНазваниеРасшифровкаНазначение
3PWTPage-level Writes TransparentУправляет политикой кэширования текущего каталога страниц
4PCDPage-level Cache DisableУправляет запретом кеширования текущего каталога страниц
12-31  Содержит физический базовый адрес каталога страниц

Регистр CR4
БитНазваниеРасшифровкаНазначение
0VMEVirtual-8086 Mode ExtensionsРазрешает обработку прерываний и исключений в виртуальном режиме процессора 8086
1PVIProtected-Mode Virtual InterruptsРазрешает аппаратную поддержку для флага VIF в защищенном режиме
2TSDTime Stamp DisableОграничивает применение инструкции RDTSC привелегией уровня 0
3DEDebugging ExtensionsОбращение к отладочным регистрам вызывает исключение "недопустимый код операции"
4PSEPage Size ExtensionsРазрешает 4-х мегабайтные страницы
5PAEPhysical Address ExtensionРазрешает механизм страничной адресации для ссылок на 36-битные физические адреса
6MCEMachine-Check EnableРазрешает исключение "машинный контроль"
7PGEPage Global EnableРазрешает использование глобальных страниц
8PСEPerformance-Monitoring Counter EnableРазрешает исключение инструкции RDPMC для программ или процедур, работающих при любом уровне защиты
9OSFXSROperating System Support for FXSAVE and FXRSTOR instructionsЭтот флаг предварительно формирует следующие функции:
  1. указывает ПО, что операционная система поддерживает использование инструкций FXSAVE и FXRSTOR,
  2. разрешает инструкции FXSAVE и FXRSTOR, чтобы сохранить и восстановить содержание регистров XMM и MXCSR вместе с регистрами FPU и MMX,
  3. разрешает процессору выполнять любую из инструкций SSE и SSE2, за исключением PAUSE, PREFETCHh, SFENCE, LFENCE, MFENCE, MOVNTI и CLFLUSH.
10OSXMMEXCPTOperating System Support for Unmasked SIMD Floating-Point ExceptionsУказывает, что операционная система поддерживает обработку немаскируемых исключений SIMD-инструкций с плавающей запятой через обработчик исключений, который вызывается, когда происходит такое исключение.

Действия по инструкциям FPU для различных комбинаций EM, MP and TS
Флаги CR0Тип инструкции x87 FPU
EMMPTSС плавающей запятойWAIT/FWAIT
000ВыполнитьВыполнить
001Исключение #NMВыполнить
010ВыполнитьВыполнить
011Исключение #NMИсключение #NM
100Исключение #NMВыполнить
101Исключение #NMВыполнить
110Исключение #NMВыполнить
111Исключение #NMИсключение #NM

Вернуться к содержанию

Модельно-специфичные регистры в семействе процессоров P6

Адрес регистраИмя регистраОписание бита
16-ричный10-ричный
0h0P5_MC_ADDRАдрес ошибки
1h1P5_MC_TYPEТип ошибки
10h16TSCtime-stamp counter
17h23IA32_PLATFORM_IDИдентификатор платформы
  49:0зарезервировано
  52:50Идентификатор платформы.
525150 
000Флаг процессора 0
001Флаг процессора 1
010Флаг процессора 2
011Флаг процессора 3
100Флаг процессора 4
101Флаг процессора 5
110Флаг процессора 6
111Флаг процессора 7
  63:53Зарезервированно
1Bh27APIC_BASE 
  7:0Зарезервированно
  8Процессор является загрузочным
  9:10Зарезервированно
  11Глобальное разрешение/запрещение APIC
  35:12Базовый физический адрес APIC
  63:36Зарезервированно
2Ah42EBL_CR_POWERONКонфигурация по включению питания
  0 (R/W)Зарезервированно
  1 (R/W)ECC для данных
  2 (R/W)Проверка ответа (в режиме FRC)
  3 (R/W)Управление линией AERR#
  4 (R/W)Разрешение линии BERR# для запросов инициатора шины
  5Зарезервированно
  6 (R/W)Разрешить управление линией BERR# при внутренних ошибках инициатора
  7 (R/W)Управление линией BINIT#
  8 (R)Разрешение тристабильных выходов
  9 (R)Выполнение BIST
  10 (R)Слежение за линией AERR#
  11Зарезервирован
  12 (R)Слежение за линией BINIT#
  13 (R)Глубина очереди(1=1, 0=8)
  14 (R/O)Вектор сброса(1=1Мб, 0=4Гб)
  15 (R/O)Режим FRC
  17:16 (R)Чтение идентификатора кластера APIC
  19:18Зарезервированно
  21:20Идентификатор симметричного арбитража
  24:22 (R)Коэффициент тактовой частоты
  25Зарезервированно
  26 (R/W)Низкое энергопотребление
  63:27Зарезервированно
33h51TEST_CTLРегистр управления тестированием
  29:0Зарезервированно
  30Запрет потокового буфера
  31Запрет LOCK# для разделяемого блокированного доступа
79h121BIOS_UPDT_TRIGРегистр триггера обновления BIOS
88h136BBL_CR_D0[63:0]Используется кэшем 2-го уровня
89h137BBL_CR_D1[63:0]Используется кэшем 2-го уровня
8Ah138BBL_CR_D2[63:0]Используется кэшем 2-го уровня
8Bh139BIOS_SIGN/BBL_CR_D3[63:0]Регистр сигнатуры обновления BIOS/Используется кэшем 2-го уровня
C1h193PerfCtr0 (PERFCTR0) 
C2h194PerfCtr0 (PERFCTR0) 
FEh254MTRRcap 
116h278BBL_CR_ADDR [63:0]Используется кэшем 2-го уровня
118h280BBL_CR_DECC[63:0]Используется кэшем 2-го уровня
119h281/td>BBL_CR_CTLКонфигурирование кэша 2-го уровня
11Ah282BBL_CR_TRIGИнициализация конфигурационных регистров кэша 2-го уровня
11Bh283BBL_CR_BUSYИндикатор занятости конфигурированием кэша 2-го уровня
11Eh286BBL_CR_CTL3Конфигурационный регистр кэша 2-го уровня
174h372SYSENTER_CS_MSRРегистр CS для CPL 0
175h373SYSENTER_ESP_MSRУказатель на стек для CPL 0
176h374SYSENTER_EIP_MSRТочка входа CPL 0
179h377MCG_CAP 
179Ah378MCG_STATUS 
179Bh379MCG_CTL 
186h390PerfEvtSel0 (EVNTSEL0) 
187h391PerfEvtSel1 (EVNTSEL1) 
1D9H473DEBUGCTLMSRУправление отладкой
1DBh475LASTBRANCHFROMIP 
1DCh476LASTBRANCHTOIP 
1DDh477LASTINTFROMIP 
1DEh478LASTINTTOIP 
1E0h480ROB_CR_BKUPTMPDR6 
200h512MTRRphysBase0 
201h513MTRRphysMask0 
202h514MTRRphysBase1 
203h515MTRRphysMask1 
204h516MTRRphysBase2 
205h517MTRRphysMask2 
206h518MTRRphysBase3 
207h519MTRRphysMask3 
208h520MTRRphysBase4 
209h521MTRRphysMask4 
20Ah522MTRRphysBase5 
20Bh523MTRRphysMask5 
20Ch524MTRRphysBase6 
20Dh525MTRRphysMask6 
20Eh526MTRRphysBase7 
20Fh527MTRRphysMask7 
250h592MTRRfix64K_00000 
258h600MTRRfix16K_80000 
259h601MTRRfix16K_A0000 
268h616MTRRfix4K_C0000 
269h617MTRRfix4K_C8000 
26Ah618MTRRfix4K_D0000 
26Bh619MTRRfix4K_D8000 
26Ch620MTRRfix4K_E0000 
26Dh621MTRRfix4K_E8000 
26Eh622MTRRfix4K_F0000 
26Fh623MTRRfix4K_F8000 
2FFh767MTRRdefType 
400h1024MC0_CTL 
401h1025MC0_STATUS 
402h1026MC0_ADDR 
403h1027MC0_MISCОпределен в архитектуре MCA, но не предусмотрен в P6
404h1028MC1_CTL 
405h1029MC1_STATUS 
406h1030MC1_ADDR 
407h1031MC1_MISCОпределен в архитектуре MCA, но не предусмотрен в P6
408h1032MC2_CTL 
409h1033MC2_STATUS 
40Ah1034MC2_ADDR 
40Bh1035MC2_MISCОпределен в архитектуре MCA, но не предусмотрен в P6
40Ch1036MC4_CTL 
40Dh1037MC4_STATUS 
40Eh1038MC4_ADDR 
40Fh1039MC4_MISCОпределен в архитектуре MCA, но не предусмотрен в P6
410h1040MC3_CTL 
411h1041MC3_STATUS 
412h1042MC3_ADDR 
413h1043MC3_MISCОпределен в архитектуре MCA, но не предусмотрен в P6

Вернуться к содержанию

Отладочные регистры

Назначение отладочных регистров
РегистрНазначение
DR0Содержит 32-битный линейный адрес нулевой точки останова
DR1Содержит 32-битный линейный адрес первой точки останова
DR2Содержит 32-битный линейный адрес второй точки останова
DR3Содержит 32-битный линейный адрес третьей точки останова
DR4Зарезервирован, если отладочные расширения разрешены
DR5Зарезервирован, если отладочные расширения разрешены
DR6Регистр состояния отладки. Описывает отладочные условия, которые были во время последнего отладочного исключения
DR7Регистр управления отладкой. Разрешает или запрещает точки останова и определяет условия точек останова

Регистр DR6
БитНазваниеРасшифровкаНазначение
0-3B0 - B3breakpoint condition detectedУказывают, что условие, связанное с точкой останова, удовлетворялось, когда произошло отладочное исключение
4-12Зарезервированно Не определяются
13BDdebug register access detectedУказывает, что следующая инструкция обращается к отладочным регистрам
14BSsingle stepУказывает, что отладочное исключение произошло при пошаговом выполнении
15BTtask switchУказывает, что отладочное исключение произошло в результате переключения задачи, когда флаг T в TSS новой задачи был установлен
16-31Зарезервированные биты  

Регистр DR7
БитНазваниеРасшифровкаНазначение
0L0-L3local breakpoint enableРазрешает условие точки останова для связанной точки останова для текущей задачи
1G0-G3global breakpoint enableРазрешает условие точки останова для связанной точки останова для всех задач
10-12Зарезервированы  
13GDgeneral detect enableРазрешает защиту отладочных регистров, которые вызывают отладочное исключение, которое генерируется перед командой MOV, обращающейся к отладочному регистру
14-15Зарезервированы  
16-17R/W0-R/W3read/write fieldsОпределяет условия точки останова
18-19LEN0-LEN3Length fieldsОпределяет размер памяти по адресу, хранящемуся в регистрах DR0-DR3

Вернуться к содержанию

Регистры общего назначения

Регистры данных
РегистрНазначение
EAXАккумулятор
EBXБазовый регистр
ECXСчетчик
EDXРегистр данных
  
Регистры-указатели
РегистрНазначение
ESIИндекс источника
EDIИндекс приемника
EBPУказатель базы
ESPУказатель стека

Вернуться к содержанию

Сегментные регистры

РегистрНазначение
CSРегистр программного сегмента
DSРегистр сегмента данных
ESРегистр дополнительного сегмента данных
FSРегистр дополнительного сегмента данных
GSРегистр дополнительного сегмента данных
SSРегистр сегмента стека

Примечание. В защищенном режиме в этих регистрах хранятся не сами сегменты, а селекторы сегментов.

Вернуться к содержанию


Источники информации:

Hosted by uCoz