
2.0 Architectural Description
(Continued)
and contains the opcode and up to two 5-bit General Ad-
dressing Mode (Gen) fields. Following the Basic Instruction
field is a set of optional extensions, which may appear de-
pending on the instruction and the addressing modes se-
lected.
The only form of extension issued to the NS32081 FPU is
an Immediate operand. Other extensions are used only by
the CPU to reference memory operands needed by the
FPU.
Index Bytes appear when either or both Gen fields specify
Scaled Index. In this case, the Gen field specifies only the
Scale Factor (1, 2, 4 or 8), and the Index Byte specifies
which General Purpose Register to use as the index, and
which addressing mode calculation to perform before index-
ing. See
Figure 2-4 .
Following Index Bytes come any displacements (addressing
constants) or immediate values associated with the select-
ed addressing modes. Each Disp/lmm field may contain
one or two displacements, or one immediate value. The size
of a Displacement field is encoded within the top bits of that
field, as shown in
Figure 2-5 , with the remaining bits inter-
preted as a signed (two’s complement) value. The size of an
immediate value is determined from the Opcode field. Both
Displacement and Immediate fields are stored most signifi-
cant byte first.
Some non-FPU instructions require additional, ‘‘implied’’ im-
mediates and/or displacements, apart from those associat-
ed with addressing modes. Any such extensions appear at
the end of the instruction, in the order that they appear with-
in the list of operands in the instruction definition.
2.2.2 Addressing Modes
The Series 32000 Family CPUs generally access an oper-
and by calculating its Effective Address based on informa-
tion available when the operand is to be accessed. The
method to be used in performing this calculation is specified
by the programmer as an ‘‘addressing mode.’’
Addressing modes in the Series 32000 family are designed
to optimally support high-level language accesses to vari-
ables. In nearly all cases, a variable access requires only
one addressing mode within the instruction which acts upon
that variable. Extraneous data movement is therefore mini-
mized.
Series 32000 Addressing Modes fall into nine basic types:
Register:
In floating-point instructions, these addressing
modes refer to a Floating-Point Register (F0 – F7) if the op-
erand is of a floating-point type. Otherwise, a CPU General
Purpose Register (R0 – R7) is referenced. See Section 2.1.1.
Register Relative:
A CPU General Purpose Register con-
tains an address to which is added a displacement value
from the instruction, yielding the Effective Address of the
operand in memory.
TL/EE/5234 – 7
FIGURE 2-4. Index Byte Format
Memory Space:
Identical to Register Relative above, ex-
cept that the register used is one of the dedicated CPU
registers PC, SP, SB or FP. These registers point to data
areas generally needed by high-level languages.
Memory Relative:
A pointer variable is found within the
memory space pointed to by the CPU SP, SB or FP register.
A displacement is added to that pointer to generate the Ef-
fective Address of the operand.
Immediate:
The operand is encoded within the instruction.
This addressing mode is not allowed if the operand is to be
written. Floating-point operands as well as integer operands
may be specified using Immediate mode.
Absolute:
The address of the operand is specified by a
Displacement field in the instruction.
External:
A pointer value is read from a specified entry of
the current Link Table. To this pointer value is added a dis-
placement, yielding the Effective Address of the operand.
Top of Stack:
The currently-selected CPU Stack Pointer
(SP0 or SP1) specifies the location of the operand. The op-
erand is pushed or popped, depending on whether it is writ-
ten or read.
Scaled Index:
Although encoded as an addressing mode,
Scaled Indexing is an option on any addressing mode ex-
cept Immediate or another Scaled Index. It has the effect of
calculating an Effective Address, then multiplying any Gen-
eral Purpose Register by 1, 2, 4 or 8 and adding it into the
total, yielding the final Effective Address of the operand.
The following table, Table 2-1, is a brief summary of the
addressing modes. For a complete description of their ac-
tions, see the Series 32000 Instruction Set Reference Man-
ual.
TL/EE/5234 – 10
FIGURE 2-5. Displacement Encodings
7