beautypg.com

Table 4–13. class 1 instruction encoding, Table 4–14. class 1a instruction description – Texas Instruments MSP50C6xx User Manual

Page 112

background image

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 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 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

An

adrs

Class 1b

0

1

C1b

s

An

adrs

Table 4–14. 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.