Domanda

Sto leggendo come SEH è implementato in Win32 e mi sono imbattuto in questa cosa chiamata Registro FS. Non sono riuscito a trovare nulla di buono su Google (molto probabilmente potrei cercare la cosa sbagliata). Quindi qualcuno può spiegare di cosa si tratta?

È stato utile?

Soluzione

È un registro dei segmenti. L'X86 ne ha sei: CS, DS, ES, SS, FS e GS (FS e GS erano nuovi nell'80386). I mnemonici provengono dai loro ruoli: segmento di codice, segmento di dati, segmento esteso (in effetti, un registro ausiliario), segmento stack. Questi ruoli sono codificati duramente nella semantica delle istruzioni di assemblaggio X86. FS e GS sono ausiliari come ES, quindi sopportano le lettere successive dopo E.

In modalità protetta a 32 bit in quanto viene generalmente utilizzata (ad esempio, in Windows, Linux, *BSD), CS, DS, ES e SS sono tutti impostati con una base di 0 e un limite di 4Gig e la protezione della memoria è eseguita solo con autorizzazioni di pagina. FS indica un blocco di informazioni sul thread (TIB) in modalità utente e la regione di controllo del processore (KPCR) in modalità kernel. Matt Pietrek ha scritto un bel bene articolo A proposito anni fa, è ancora disponibile su MSDN.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top