
TMS320C54x, TMS320LC54x, TMS320VC54x
FIXED-POINT DIGITAL SIGNAL PROCESSORS
SPRS039C – FEBRUARY 1996 – REVISED DECEMBER 1999
47
POST OFFICE BOX 1443
HOUSTON, TEXAS 77251–1443
Table 13. ’54x Instruction Set Opcodes
MNEMONIC SYNTAX
DESCRIPTION
WORDS/
OPCODE
MNEMONIC SYNTAX
DESCRIPTION
WORDS/
CYCLES
MSB
LSB
ARITHMETIC INSTRUCTIONS
ABDST
Xmem, Ymem
Absolute distance
1/1
1110
0011
XXXX
YYYY
ABS
src [, dst ]
Absolute value of ACC
1/1
1111
01SD
1000
0101
ADD
Smem, src
Add operand to ACC
1/1
0000
000S
IAAA
AAAA
ADD
Smem, TS, src
Add (shifted by TREG[5:0]) operand to ACC
1/1
0000
010S
IAAA
AAAA
ADD
Smem, 16, src [, dst ]
Add (shifted by 16 bits) operand to ACC
1/1
0011
11SD
IAAA
AAAA
ADD
Smem [, SHIFT], src [, dst ]
Add shifted operand to ACC (2-word opcode)
2/2
0110
0000
1111
11SD
IAAA
000S
AAAA
HIFT
ADD
Xmem, SHFT, src
Add shifted operand to ACC
1/1
1001
000S
XXXX
SHFT
ADD
Xmem, Ymem, dst
Add dual operands, shift result by 16
1/1
1010
000D
XXXX
YYYY
ADD #
lk [, SHFT], src [, dst ]
Add shifted long-immediate value to ACC
2/2
1111
00SD
0000
SHFT
ADD #
lk, 16, src [, dst ]
Add (shifted by 16 bits) long-immediate to ACC
2/2
1111
00SD
0110
0000
ADD
src [, SHIFT], [, dst ]
Add ACC(s) (A / B), then shift result
1/1
1111
01SD
000S
HIFT
ADD
src, ASM [, dst ]
Add ACC(s) (A / B), then shift result by ASM value
1/1
1111
01SD
1000
0000
ADDC
Smem, src
Add to accumulator with carry
1/1
0000
011S
IAAA
AAAA
ADDM #
lk, Smem
Add long-immediate value to memory
2/2
0110
1011
IAAA
AAAA
ADDS
Smem, src
Add to ACC with sign-extension suppressed
1/1
0000
001S
IAAA
AAAA
DADD
Lmem, src [, dst ]
Double/dual add to accumulator
1/1
0101
00SD
IAAA
AAAA
DADST
Lmem, dst
Double/dual add/subtract of T, long operand
1/1
0101
101D
IAAA
AAAA
DELAY
Smem
Memory delay
1/1
0100
1101
IAAA
AAAA
DRSUB
Lmem, src
Double/dual 16-bit subtract from long word
1/1
0101
100S
IAAA
AAAA
DSADT
Lmem, dst
Double/dual, subtract/add of T, long operand
1/1
0101
111D
IAAA
AAAA
DSUB
Lmem, src
Double-precision/dual 16-bit subtract from ACC
1/1
0101
010S
IAAA
AAAA
DSUBT
Lmem, dst
Double/dual, subtract/subtract of T, long operand
1/1
0101
110D
IAAA
AAAA
EXP
src
Accumulator exponent
1/1
1111
010S
1000
1110
FIRS
Xmem, Ymem, pmad
Symmetrical finite impulse response filter
2/3
1110
0000
XXXX
YYYY
LMS
Xmem, Ymem
Least mean square
1/1
1110
0001
XXXX
YYYY
MAC[R]
Smem, src
Multiply by TREG, add to ACC, round if specified
1/1
0010
10RS
IAAA
AAAA
MAC[R]
Xmem, Ymem, src [, dst ]
Multiply dual, add to ACC, round if specified
1/1
1011
0RSD
XXXX
YYYY
MAC #
lk, src [, dst ]
Multiply TREG by long-immediate, add to ACC
2/2
1111
00SD
0110
0111
MAC
Smem, #lk, src [, dst ]
Multiply by long-immediate value, add to ACC
2/2
0110
01SD
IAAA
AAAA
MACA[R]
Smem [, B ]
Multiply by ACCA, add to ACCB [round]
1/1
0011
01R1
IAAA
AAAA
MACA[R] T,
src [, dst ]
Multiply TREG by ACCA, add to ACC [round]
1/1
1111
01SD
1000
100R
MACD
Smem, pmad, src
Multiply by program memory, accumulate/delay
2/3
0111
101S
IAAA
AAAA
MACP
Smem, pmad, src
Multiply by program memory, then accumulate
2/3
0111
100S
IAAA
AAAA
MACSU
Xmem, Ymem, src
Multiply signed by unsigned, then accumulate
1/1
1010
011S
XXXX
YYYY
MAS[R]
Smem, src
Multiply by T, subtract from ACC [round]
1/1
0010
11RS
IAAA
AAAA
Values for words and cycles assume the use of DARAM for data. Add one word and one cycle when using long-offset indirect addressing or
absolute addressing with a single data-memory operand.
Delayed Instruction
§ Condition true
Condition false
instruction set summary (continued)