Texas Instruments MSP50C6xx Calculator User Manual


 
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 preincrement 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 An field (An = 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 413. 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 An adrs
Class 1b 0 1 C1b s An adrs
Table 414. Class 1a Instruction Description
C1a Mnemonic Description
0 0 ADD An[~], An, {adrs} [, next A]
ADDS An[~], An, {adrs}
Add contents of data memory location referred by {adrs} to accumulator An
and store the results in the same accumulator An (if ~A=0) or offset
accumulator An~ (~A=1). ALU status is modified.
0 1 SUB An[~], An, {adrs} [, next A]
SUBS An[~], An, {adrs}
Subtract contents of data memory location referred by {adrs} from
accumulator An and store the results in the same accumulator An (if ~A=0)
or offset accumulator An~ (~A=1). ALU status is modified.
1 0 MOV An[~], {adrs} [, next A]
MOVS An[~], {adrs}
Load accumulator An (~A=0) or offset accumulator An~ (~A=1) from data
memory location referred to {adrs}. ALU status is modified.
1 1 MOV {adrs}, An[~] [, next A]
MOVS {adrs}, An[~]
Store accumulator (A~=0) or offset accumulator (A~=1) to data memory
location referred to by addressing mode {adrs}. Transfer status is modified.