Вопрос

Я читаю, как SEH реализован в Win32, и я наткнулся на эту штуку под названием FS регистр. Анкет Я не мог найти ничего хорошего в Google (скорее всего, я могу искать неправильную вещь). Так может кто -нибудь объяснить, что это такое?

Это было полезно?

Решение

Это регистр сегмента. У X86 есть шесть из них: CS, DS, ES, SS, FS и GS (FS и GS были новыми в 80386). Mnemonics происходит из их ролей: сегмент кода, сегмент данных, расширенный сегмент (фактически, вспомогательный регистр), сегмент стека. Эти роли жестко кодируются в семантике инструкций x86 сборки. FS и GS являются вспомогательными, как ES, так что они просто несут следующие буквы после E.

В 32-разрядом защищенного режима, как обычно используется (например, в Windows, Linux, *BSD), CS, DS, ES и SS все установлены с базой 0, а предел 4GIG, а защита памяти выполняется только с Разрешения на странице. FS указывает на информационный блок потока (TIB) в пользовательском режиме и на область управления процессором (KPCR) в режиме ядра. Мэтт Пьетрек написал довольно хорошо статья Об этом несколько лет назад это все еще доступно на MSDN.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top