Question

Je lis comment SEH est mis en œuvre dans Win32 et je suis tombé sur ce qu'on appelle le FS enregistrer . Je ne pouvais pas trouver quelque chose de bon sur Google (très probablement je être à la recherche pour la chose de mal). Ainsi peut-on expliquer ce qu'il est?

Était-ce utile?

La solution

Il est un registre de segment. Le x86 a six d'entre eux: CS, DS, ES, SS, FS et GS (FS et GS étaient nouveaux en 80386). Les mnémoniques proviennent de leurs rôles: segment de code, segment de données, le segment étendu (en fait, un registre auxiliaire), le segment pile. Ces rôles sont codés en dur dans la sémantique des instructions de montage x86. FS et GS sont auxiliaires comme ES afin qu'ils portent juste les lettres suivantes après E.

En mode protégé 32 bits comme il est généralement utilisé (par exemple, sous Windows, Linux, * BSD), CS, DS, ES et SS sont tous ensemble avec une base de 0 et une limite de 4gig et la protection de la mémoire est fait uniquement avec des autorisations de page. points de FS à un fil bloc d'information (TIB) en mode utilisateur et processeur Région de contrôle (KPCR) en mode noyau. Matt Pietrek a écrit un très bon article sur il y a des années qui est toujours disponible sur MSDN .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top