ФС зарегистрируйся в Win32 - PullRequest
       8

ФС зарегистрируйся в Win32

6 голосов
/ 01 февраля 2011

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

1 Ответ

11 голосов
/ 01 февраля 2011

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

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

...