TMS320C3X INSTRUCTION SET

A summary of the TMS320C3x instruction set is shown below. The instructions can be separated into five groups: load and store; instructions that require two operands; instructions that require three operands; program control; and parallel instructions that save overhead on tasks such as loop counters.

LOAD AND STORE INSTRUCTIONS:
Instruction Description Instruction Description
LDE Load floating-point exponent POP Pop integer from stack
LDF Load floating-point value POPF Pop floating-point value from stack
LDFcond Load floating-point value conditionally PUSH Push integer on stack
LDI Load integer PUSHF Push floating-point value on stack
LDIcond Load integer conditionally STF Store floating-point value
LDM Load floating-point mantissa STI Store integer
LDP Load data page pointer    

TWO-OPERAND INSTRUCTIONS:
Instruction Description Instruction Description
ABSF Absolute value of a floating-point number NORM Normalize floating-point value
ABSI Absolute value of an integer NOT Bitwise-logical complement
ADDC+ Add integers with carry OR+ Bitwise-logical OR
ADDF+ Add floating-point values RND Round floating-point value
ADDI+ Add integers ROL Rotate left
AND+ Bitwise-logical AND ROLC Rotate left through carry
ANDN+ Bitwise-logical AND with complement ROR Rotate right
ASH+ Arithmetic shift RORC Rotate right through carry
CMPF+ Compare floating-point values SUBB+ Subtract integers with borrow
CMPI+ Compare integers SUBC Subtract integers conditionally
FIX Convert floating-point value to integer SUBF+ Subtract floating-point values
FLOAT Convert integer to floating-point value SUBI+ Subtract integer
LSH+ Logical shift SUBRB Subtract reverse integer with borrow
MPYF+ Multiply floating-point values SUBRF Subtract reverse floating-point value
MPYI+ Multiply integers SUBRI Subtract reverse integer
NEGB Negate integer with borrow TSTB+ Test bit fields
NEGF Negate floating-point value XOR+ Bitwise-exclusive OR
NEGI Negate integer    

+ 2 and 3-operand versions

THREE-OPERAND INSTRUCTIONS:
Instruction Description Instruction Description
ADDC3 Add with carry MPYF3 Multiply floating-point values
ADDF3 Add floating-point values MPYI3 Multiply integers
ADDI Add integers OR3 Bitwise-logical OR
AND3 Bitwise-logical AND SUBB3 Subtract integers with borrow
ANDN3 Bitwise-logical AND with complement SUBF3 Subtract floating-point values
ASH3 Arithmetic shift SUBI3 Subtract integers
CMPF3 Compare floating-point values TSTB3 Test bit fields
CMPI3 Compare integers XOR3 Bitwise-exclusive OR
LSH3 Logical shift    

PROGRAM CONTROL INSTRUCTIONS:
Instruction Description Instruction Description
Bcond Branch conditionally (standard) IDLE Idle until interrupt
BcondD Branch conditionally (delayed) NOP No operation
BR Branch unconditionally (standard) RETIcond Return from interrupt conditionally
BRD Branch unconditionally (delayed) RETScond Return from subroutine conditionally
CALL Call subroutine RPTB Repeat block of instructions
CALLIcond Call subroutine conditionally RPTS Repeat single instruction
DBcond Decrement and branch conditionally (standard) SWI Software interrupt
DBcondD Decrement and branch conditionally (delayed) TRAPcond Trap conditionally
IACK Interrupt acknowledge    

PARALLEL INSTRUCTIONS:
Mnemonic Description Mnemonic Description
      ABSF
 ||   STF
Absolute value of a floating-point number and store floating point value       NEGI
 ||   STI
Negate integer and store integer
      ABSI
 ||   STI
Absolute value of an integer and store integer       NOT
 ||   STI
Complement value and store integer
      ADDF3
 ||   STF
Add floating-point values and store floating-point value       OR3
 ||   STI
Bitwise-logical OR value and store integer
      ADDI3
 ||   STI
Add integers and store integer       STF
 ||   STF
Store floating-point values
      AND3
 ||   STI
Bitwise-logical AND and store integer       STI
 ||   STI
Store integers
      ASH3
 ||   STI
Arithmetic shift and store integer       SUBF3
 ||   STF
Subtract floating-point values and store floating-point value
      FIX
 ||   STI
Convert floating-point to integer and store integer       SUBI3
 ||   STI
Subtract integer and store integer
      FLOAT
 ||   STF
Convert integer to floating-point value and store floating-point value       XOR3
 ||   STI
Bitwise-exclusive OR values and store integer
      LDF
 ||   STF
Load floating-point value and store floating-point value       LDF
 ||   LDF
Load floating-point values
      LDI
 ||   STI
Load integer and store integer       LDI
 ||   LDI
Load integer
      LSH3
 ||   STI
Logical shift and store integer       MPYF3
 ||   ADDF3
Multiply and add floating-point value
      MPYF3
 ||   STF
Multiply floating-point values and store floating-point value       MPYF3
 ||   SUBF3
Multiply and subtract floating-point value
      MPYI3
 ||   STI
Multiply integer and store integer       MPYI3
 ||   ADDI3
Multiply and add integer
      NEGF
 ||   STF
Negate floating-point value and store floating-point value       MPYI3
 ||   SUBI3
Multiply and subtract integer