Instruction Classification
4-26
Class 1a provides the four basic instructions of load, store, add, and subtract
between accumulator and data memory. Either the accumulator or the offset
accumulator (A~ bit dependent) can be stored in memory with the MOV
instruction. The MOV instruction can load the accumulator (or its offset)
depending on the ~A bit. The ADD or SUB instructions add or subtract memory
from an accumulator register and save the results in the accumulator register
(~A=0) or its offset (~A=1). Two of the four codes provided by the
next A
field
will cause a pre–increment or a predecrement of the accumulator register
pointer (AP) prior to execution. This preincrement is a permanent change to
the referenced AP and further expands the use of the accumulator block as
an efficient workspace. Preincrements and predecrements are not available
in string mode
One of the four codes of the A
n
field (A
n
= 11 binary) will cause the instruction
to be treated as a multicycle string instruction. This will not result in any perma-
nent modification to the referenced AP.
Since there is no reference to offset accumulators in Class 1b instructions, the
execution operates on memory and accumulators. All other modes of control
(string, preincrement/predecrement AP, data memory addressing modes,
etc.) are provided for logical, byte, multiply-accumulate, and barrel shift
instructions.
Table 4–13. Class 1 Instruction Encoding
Bit 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Class 1a 0 0 C1a ~A~
next A
A
n adrs
Class 1b 0 1 C1b
s
A
n adrs
Table 4–14. Class 1a Instruction Description
C1a Mnemonic Description
0 0 ADD A
n
[~], A
n
, {
adrs
} [,
next A
]
ADDS A
n
[~], A
n
, {
adrs
}
Add contents of data memory location referred by {
adrs
} to accumulator A
n
and store the results in the same accumulator A
n
(if ~A=0) or offset
accumulator A
n
~ (~A=1). ALU status is modified.
0 1 SUB A
n
[~], A
n
, {
adrs
} [,
next A
]
SUBS A
n
[~], A
n
, {
adrs
}
Subtract contents of data memory location referred by {
adrs
} from
accumulator A
n
and store the results in the same accumulator A
n
(if ~A=0)
or offset accumulator A
n
~ (~A=1). ALU status is modified.
1 0 MOV A
n
[~], {
adrs
}
[, next A]
MOVS A
n
[~], {
adrs
}
Load accumulator A
n
(~A=0) or offset accumulator A
n
~ (~A=1) from data
memory location referred to {
adrs
}. ALU status is modified.
1 1 MOV {
adrs
}, A
n
[~] [, next A]
MOVS {
adrs
}, A
n
[~]
Store accumulator (A~=0) or offset accumulator (A~=1) to data memory
location referred to by addressing mode {
adrs
}. Transfer status is modified.