376 EMBEDDED PROCESSOR
Table 8.1. 80376 Instruction Set Clock Count Summary
(Continued)
Clock
Counts
Number
of Data
Cycles
Instruction
Format
Notes
PROTECTION CONTROL
(Continued)
SMSW
e
Store Machine
Status Word
0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 1
mod 1 0 0
r/m
2/2
*
1
*
a, c
STR
e
Store Task Register
To Register/Memory
0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0
mod 0 0 1
r/m
2/2
*
1
*
a
VERR
e
Verify Read Accesss
Register/Memory
0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0
mod 1 0 0
r/m
10/11
**
2
**
a,c,i,p
VERW
e
Verify Write Accesss
0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0
mod 1 0 1
r/m
15/16
**
2
**
a,c,i,p
NOTES:
a. Exception 13 fault (general violation) will occur if the memory operand in CS, DS, ES, FS or GS cannot be used due to
either a segment limit violation or access rights violation. If a stack limit is violated, and exception 12 (stack segment limit
violation or not present) occurs.
b. For segment load operations, the CPL, RPL and DPL must agree with the privilege rules to avoid an exception 13 fault
(general protection violation). The segments’s descriptor must indicate ‘‘present’’ or exception 11 (CS, DS, 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).
c. All segment descriptor accesses in the GDT or LDT made by this instruction will automatically assert LOCK to maintain
descriptor integrity in multiprocessor systems.
d. 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 volated.
e. An exception 13 fault occurs if CPL is greater than 0.
f. An exception 13 fault occurs if CPL is greater than IOPL.
g. The IF bit of the flag register is not updated if CPL is greater than IOPL. The IOPL field of the flag register is updated only
if CPL
e
0.
h. Any violation of privelege rules as applied to the selector operand does not cause a protection exception; rather, the zero
flag is cleared.
i. 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 no present) will occur if the stack limit is violated by the operand’s starting address.
j. 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.
k. If CPL
s
IOPL
l. If CPL
l
IOPL
m. LOCK is automatically asserted, regardless of the presence or absence of the LOCK prefix.
n. The 80376 uses an early-out multiply algorithm. The actual number of clocks depends on the position of the most signifi-
cant bit in the operand (multiplier). Clock counts given are minimum to maximum. To calculate actual clocks use the follow-
ing formula:
Actual Clock
e
if m
k l
0 then max (
[
log
2
l
m
l
]
, 3)
a
9 clocks:
if m
e
0 then 12 clocks (where m is the multiplier)
o. An exception may occur, depending on the value of the operand.
p. LOCK is asserted during descriptor table accesses.
86