Description
(Cont'd)
CONDITION CODE
UTILIZATION
INTERRUPT
ACTION
Address
Error
Decimal
Arithmetic
I nsiJructions
Ll can be
from
0000 to 1111. The address
and
size
of
the second operand
is obtained
in
the
same
way
using B
2
,
D2
and
L
2
•
Results
of
operations
are
always stored
in
the
first operand field
and
never exceed
the
limits specified
by
the
address
and
length. The second
operand is not changed in
an
add-type instruction unless the second operand
addresses the same
rightmost
byte
as
the
first operand.
Note: A zero
in
the
Bl
or
B2
field indicates
that
no general
register
is to
be used.
• The condition code is
set
as a result
of
all add-type
and
comparison
operations. No
other
decimal
arithmetic
instructions affect
the
condition
code.
The condition code
setting
has
a different
meaning
for
the
comparison
operation result
than
for
the add-type result. The results
of
the
following
decimal arithmetic instructions cause the indicated condition code
settings:
Condition Code SeHing
Instruction
0 1
2
3
Add Decimal
Zero
< Zero > Zero
Overflow
Subtract
Decimal Zero
< Zero > Zero
Overflow
Zero
and
Add
Zero
< Zero > Zero
Overflow
Compare Decimal
Equal
Low
High
--
• The following
interrupt
conditions
can
occur
as
a
result
of
a decimal
arithmetic instruction.
Addressing • An address
error
interrupt
exists when
an
address specifies a location
outside
the
available
main
memory
of
the
particular
installation. The
operation
is
terminated
at
the
point
of
error.
The
result
data
and
the
condition code
are
unpredictable.
Specification •
An
address
error
interrupt
exists when a multiplier
or
divisor size
exceeds 15 digits plus
sign;
or
when
the
multiplier size
or
the
divisor
size is equal
to,
or
greater
than,
the
multiplicand
or
dividend size, respec-
tively. The instruction is suppressed.
The
condition code,
data
in
main
memory,
and
registers
remain
unchanged.
Protection •
An
address
error
interrupt
exists when
the
protection key
and
the
storage
key
of
the
result location
do
not
match.
The
operation is
terminated.
The result
data
and
condition code
are
unpredictable.
(This
interrupt
can
occur only
if
the
memory protect
feature
is installed.)
Data
Error
• A
data
error
interrupt
exists
in
decimal
arithmetic
when
an
invalid
sign
(not
greater
than
nine)
or
digit code
(not
zero
through
nine) is
detected
in
an
operand, a multiplicand
has
insufficient high-order zeros,
or
there
is incorrect overlapping
of
operands.
The
operation is terminated.
The
result
data
and
the
condition code
setting
are
unpredictable.
156