PROTECTION

65535

t

OFFSET

~>,-_....o !

8191

t

65535 OFFSET

~......_ ... o +

TASK A PRIVATE ADDRESS SPACE

65535

+

OFFSET

...-."'-_-11) I

8191

10

,65535

t

OFFSET

'--1......._ .... 0 +

TASK C PRIVATE ADDRESS SPACE

65535

+

OFFSET

,.--0......_ .... 0 ~

8191

L

65535

I

OFFSET

~,.I.-_....o I

TASK B PRIVATE ADDRESS SPACE

65535

t

OFFSET

,.--0......._ .... 0 I

8191

L

65535

r::loFlsET

LJol

SHARED ADDRESS SPACE

TASK B ADDRESS SPACE

G30108

Figure 7-3. 80286 Virluai Address Space

7.2.3 Type Validation

After checking that a selector reference is within the bounds of a descriptor table and refers to a non- empty descriptor, the type of segment defined by the descriptor is checked against the destination reglster. Since each segmt:I1L n;gisit;'- ha.5 plcdcfin~d f~nctic!'!e, e2.ch !!1l!st !'~f~r to certain types of segments (see section 7.4.1). An attempt to load a segment register in violation of the protection rules causes an exception.

The "null" selector is a special type of segment selector. It has an index field of all zeros and a table indicator of O. The null selector appears to refer to GDT descriptor entry #0 (see GDT in figure 7-3). This selector value may be used as a place holder in the DS or ES segment registers; it may be loaded into them without causing an exception. However, any attempt to use the null segment registers to reference memory will cause an exception and prevent any memory cycle from occurring.

7-6

Page 132
Image 132
Intel 80287, 80286 manual LJol