infef
80386
a e -1. T bl 8 803861 ns rue Ion e oe
t"
StCI kC
ount 5
ummary

(C

ontlnue
d)
CLOCK
COUNT
NOTES
Real Real
INSTRUCTION FORMAT Address Protected Address Protected
Madear Virtual
Modear
Virtual
Virtual Address Virtual Address
8086
Mode 8086 Mode
Mode Mode
SlOT
~
Store Interrupt Descriptor
Table Register I
00001111
I
00000001
ImodOOl
rIm
I 9 9
b,c
h
SLOT
~
Store Local Descriptor Table Register
To Register/Memory I
00001111
I
00000000
I modOOO
rIm!
N/A
2/2
a h
SMSW
~
Store Machine
Status Word I
00001111
I
00000001
Imodl00
rIm!
10/13 10/13
b,c
h,
I
STR
~
Store Task Register
To
RegisterlMemory I
00001111
I
00000000
! modOO 1
rIm!
N/A
2/2
a h
VERR
~
Verify Read Accesss
Register/Memory I
00001111
I
00000000
I
modI
00
r/ml
N/A
10/11 a
g,
h,j, P
VERW
~
Verify Write Accesss I
00001111
I
00000000
I
modI
01
r/ml
N/A
15/16 a
g,
h,j, P
INSTRUCTION NOTES FOR TABLE
8-1
Notes
a
through
c
apply
to
80386 Real
Address
Mode
only:
a.
This is a Protected Mode instruction. Attempted execution in Real Mode will result in exception 6 (invalid opcode).
b.
Exception
13
fault (general protection) will occur in Real Mode if an operand reference is made that partially or fully
extends beyond the maximum
CS,
OS,
ES,
FS
or GS limit, FFFFH. Exception 12 fault (stack segment limit violation or not
present) will occur in Real Mode if an operand reference
is
made that partially or fully extends beyond the maximum
SS
limit.
c.
This instruction may be executed in Real Mode.
In
Real Mode, its purpose is primarily
to
initialize the
CPU
for Protected
Mode.
Notes
d
throughg
apply
to
80386 Real
Address
Mode
and
80386
Protected
Virtual
Address
Mode:
d.
The iAPX 386 uses an early-out multiply algorithm. The actual number
of
clocks depends on the
pOSition
of
the most
significant bit in the operand (multiplier).
Clock counts given are minimum to maximum. To calculate actual clocks use the following formula:
Actual Clock = if m < > 0 then max
([IOg2
Imll.
3)
+ 6 clocks:
if m = 0 then 9 clocks (where m is the multiplier)
e. An exception may occur, depending on the value of the operand.
f.
LOCK# is automatically asserted, regardless of the presence or absence of the
LOCK#
prefix.
g.
LOCK # is asserted during descriptor table accesses.
Notes
h
through
r
apply
to
80386
Protected
Virtual
Address
Mode
only:
h.
Exception 13 fault (general protection violation) will occur if the memory operand in
CS,
OS,
ES,
FS
or GS cannot be used
due to either a segment limit violation or access rights violation. If a stack limit is violated, an exception 12 (stack segment
limit violation or not present) occurs.
i.
For segment load operations, the CPL,
RPL,
and OPL must agree with the privilege rules
to
avoid an exception
13
fault
(general protection violation). The segment's descriptor must indicate "present" or exception
11
(CS,
OS,
ES,
FS,
GS not
present). If the SS register
is
loaded and a stack segment not present is detected, an exception 12 (stack segment limit
violation or not present) occurs.
j.
All segment descriptor accesses
in
the GOT or LOT made by this instruction will automatically assert LOCK# to maintain
descriptor integrity in multiprocessor systems.
k.
JMP, CALL, INT, RET and IRET instructions referring to another code segment will cause an exception
13
(general
protection violation) if an applicable privilege rule is violated.
I.
An exception 13 fault occurs
if
CPL is greater than 0
(0
is the most privileged level).
m.
An exception 13 fault occurs if CPL
is
greater than IOPL.
n.
The IF bit of the flag register is not updated if CPL is greater than IOPL. The IOPL and VM fields of the flag register are
updated only if CPL =
O.
o.
The
PE
bit of the MSW (CRO) cannot be reset by this instruction. Use MOV into CRO if desiring to reset the
PE
bit.
p.
Any violation
of
privilege rules as applied to the selector operand does not cause a protection exception; rather, the zero
flag is cleared.
q.
If the coprocessor's memory operand violates a segment limit or segment access rights, an exception 13 fault (general
protection exception) will occur before the
ESC
instruction is executed. An exception 12 fault (stack segment limit violation
or not present) will occur if the stack limit is violated by the operand's starting address.
r.
The destination of a JMP, CALL, INT, RET or IRET must be in the defined limit
of
a code segment or an exception 13 fault
(general protection violation) will occur.
124