THE
80286
INSTRUCTION SET
Set CPL to the RPL of the
CS
selector
in
the
newTSS
If new stack selector
is
null #TS(SS)
SS
selector must be within its descriptor table limits else #TS(SS)
SS
selector RPL must
be
equal to CPL else #TS(SS)
OPL
of
SS
descriptor must equal CPL else #TS(SS)
SS
descriptor
AR
byte must indicate writable data segment else #TS(SS)
SS
descriptor
AR
byte must indicate PRESENT else #SS(SS)
Load
SS
cache with new stack segment and set valid bit
New
CS
selector must not be null else #TS(CS)
CS
selector must
be
within its descriptor table limits else #TS(CS)
CS
descriptor
AR
byte must indicate code segment else #TS(CS)
If
non-conforming then OPL must equal CPL else #TS(CS)
If
conforming then
OPL
must
be
:::;
CPL else #TS(CS)
CS
descriptor
AR
byte must indicate PRESENT else #NP(CS)
Load
CS
cache with new code segment descriptor and set valid bit
For
OS
and
ES:
If new selector is not null then perform following checks:
Index must be within its descriptor table limits else #TS(segment selector)
AR
byte must indicate data
or
readable code else #TS(segment selector)
If
data
or
non-conforming code then:
OPL
must be 2': CPL else #TS(segment selector)
OPL
must be 2': RPL else #TS(segment selector)
AR
byte must indicate PRESENT else #NP(segment selector)
Load cache with new segment descriptor and set valid bit
8-13