dsp56800 Freescale Semiconductor, Inc, dsp56800 Datasheet - Page 148

no-image

dsp56800

Manufacturer Part Number
dsp56800
Description
16-bit Digital Signal Controllers
Manufacturer
Freescale Semiconductor, Inc
Datasheet
Instruction Set Introduction
Some additional notation to be considered is found in the instruction summary tables when allowed
registers for multiplications are specified (Table 6-23 on page 6-20). In these tables, the following entry is
found:
The notation (+) in this entry indicates that an optional + or - sign can be specified before the input register
combination. If a - is specified, the multiplication result is negated. This allows each of the following
examples to be valid DSP56800 instructions:
As an example, Table 6-36 on page 6-30 shows all registers and addressing modes that are allowed when
performing a dual read instruction, one of the DSP56800’s parallel move instructions. The instructions
shown in Example 6-3 are allowed.
The instruction in Example 6-4 is not allowed:
Consulting the information in Table 6-36 on page 6-30 shows that this instruction is not valid for each of
the following reasons:
6-16
(+)Y0,X0,FDD
MAC
MAC
MAC
MOVE
MACR
ADD
ADD
The only operands accepted for ADD or SUB are X0,F, Y1,F, Y0,F, A,B, or B,A, where F is either
the A or B accumulator register. Thus, X0,Y1,A is an invalid entry.
The pointer R2 is not allowed for the first memory read.
The post-decrement addressing mode is not available for the first memory read.
The X0 register may not be a destination for the first memory read because it is not listed in the
Destination 1 column.
The post-update by N addressing mode is not allowed for the second memory read. The second
memory read is always identified as the memory move that uses R3 in instructions with two
memory moves. For the second memory read, only the post-increment and post-decrement
addressing modes are allowed.
The Y0 register may not be a destination for the second memory read because it is not listed in the
Destination 2 column.
X0,Y0,A
+X0,Y0,A
-X0,Y0,A
X0,Y1,A
Y0,B
X0,Y1,A
X:(R0)+,Y0
X:(R1)+N,Y1
X:(R1)+N,Y0
X:(R2)-,X0
Example 6-4. Invalid Instruction
Example 6-3. Valid Instructions
DSP56800 Family Manual
; A + X0*Y0 -> A
; A + X0*Y0 -> A
; A - (X0*Y0) -> A
X:(R3)+,X0
X:(R3)-,X0
X:(R3)+,X0
X:(R3)+N,Y0
Freescale Semiconductor

Related parts for dsp56800