Intel 80286 Computer Accessories User Manual


 
THE
80286
INSTRUCTION SET
Flags Undefined
This
is
a list
of
the
flags
that
have
an
undefined (meaningiess) setting
after
the
instruction is
executed.
All flags not mentioned
under
"Flags
Modified"
or
"Flags
Undefined"
are
unchanged
by
the
instruction.
Operation
This section fully describes
the
operation
performed
by
the
instruction.
For
some
of
the
more compli-
cated
instructions, suggested usage is also indicated.
Protected Mode Exceptions
The
possible exceptions involved with this instruction when running
under
the
80286
Protected
Mode
are
listed below.
These
exceptions
are
abbreviated
with a pound sign (#) followed
by
two capital letters
and
an
optional
error
code in parenthesis.
For
example, #GP(O) denotes
the
general protection excep-
tion with
an
error
code
of
zero.
The
next section describes all
of
the
80286 exceptions
and
the
machine
state
upon
entry
to
the
exception.
If
you
are
an
applications
programmer,
consult
the
documentation
provided with your operating system
to
determine
what
actions
are
taken
by
the
system when exceptions occur.
Real Address Mode Exceptions
Since
less
error
checking is
performed
by
the
80286 when it
is
in
Real
Address Mode, there
are
fewer
exceptions in this mode.
One
exception
that
is
possible in
many
instructions
is
#GP(O). Exception
13
is
generated
whenever a word
operand
is
accessed from effective address OFFFFH in a segment. This
happens
because
the
second byte
of
the word
is
considered located
at
location 10000H, not
at
location
0,
and
thus
exceeds
the
segment's addressability limit.
Protection Exceptions
In
parallel with
the
execution
of
instructions,
the
protected-mode 80286 checks all memory
references
for validity
of
addressing
and
type
of
access. Violation
of
the
memory
protection rules built into
the
processor will
cause
a
transfer
of
program
control to one
of
the
interrupt
procedures described in this
section.
The
interrupts
have
dedicated
positions within
the
Interrupt
Descriptor
Table, which
is
shown
in
table
B-2.
The
interrupts
are
refen,nced within
the
instruction
set
pages
by
a pound sign (#) followed
by
a two-letter
mnemonic
and
the
optional
error
code in parenthesis.
Error Codes
Some
exceptions
cause
the
80286 to pass a 16-bit error code to the
interrupt
procedure.
When
this
happens,
the
error
code
is
the
last
item
pushed onto
the
stack
before control
is
tranferred
to
the
inter-
rupt
procedure.
If
stacks were switched as a result
of
the
interrupt
(causing a privilege change
or
task
switch),
the
error
code
appears
on
the
interrupt
procedure's
stack, not on
the
stack
of
the
task
that
was
interrupted.
8-7