The instruction data value is a signed integer that is represented as a 32-bit word. For
each new instruction sequence, the initial value of this integer is zero. Since there are
only 4 bits in the data field of a single instruction component, it is only possible for
most instruction components to initially assign an instruction data value in the range 0
to 15. However two instruction components are used to extend the range of the
instruction data value. Hence one or more prefixing components may be needed to
create the correct instruction data value. These are shown in Table 4.1 and explained
below.
mnemonic
name
pfix n
prefix
nfix n
negative prefix
Table 4.1 Prefixing instr uction components
All instruction components initially load the four data bits into the least significant four
bits of the instruction data value.
pfix loads its four data bits into the instruction data value, and then shifts this value up
four places. nfix is similar, except that it complements the instruction data value†
before shifting it up. Consequently, a sequence of one or more prefixes can be
included to extend the value. Instruction data values in the range -256 to 255 can be
represented using one prefix instr uction.
When the processor encounters an instruction component other than pfix or nfix, it
loads the data field into the instr uction data value. The instruction encoding is now
complete and the instruction can be executed. When the processor is ready to fetch
the next instruction component, it starts to create a new instruction data value.
4.1.3 Primary Instructions
Research has shown that computers spend most of the time executing instructions
such as: instructions to load and store from a small number of ‘local’ variables,
instructions to add and compare with small constants, and instructions to jump to or
call other parts of the program. For efficiency therefore, these are encoded directly as
primary instructions using the function field of an instr uction component.
Thirteen of the instruction components are used to encode the most important
operations performed by any computer executing a high level language. These are
used (in conjunction with zero or more prefixes) to implement the primary instructions.
Primary instructions interpret the instruction data value as an operand for the
instruction. The mnemonic for a primary instruction will therefore normally include a
this operand - n - when referenced.
The mnemonics and names for the primary instructions are listed in Table 4.2.
mnemonic
name
adc n
add constant
Table 4.2 Primary instructions
† Note that it inverts all 32 bits of the instruction data value.
26/212
®