Chapter 8
Software Techniques
Different software techniques can be used to fully exploit the DSP56800 architecture's resources and
enhance its features. For example, small sequences of DSP56800 instructions can emulate more powerful
instructions. This chapter discusses how better performance can be obtained from the DSP56800
architecture using software techniques. The following topics are covered:
•
Synthesizing useful new instructions
•
Techniques for shifting 16- and 32-bit values
•
Incrementing and decrementing
•
Division techniques
•
Pushing variables onto the software stack
•
Different looping and nested-looping techniques
•
Different techniques for array indexing
•
Parameter passing and local variables
•
Freeing up registers for time-critical loops
•
Interrupt programming
•
Jumps and JSRs using a register value
•
Freeing one hardware stack (HWS) location
•
Multi-tasking and the HWS
8.1
Useful Instruction Operations
The flexible instruction set of the DSP56800 architecture allows new instructions to be synthesized from
existing DSP56800 instructions. This section presents some of these useful operations that are not directly
supported by the DSP56800 instruction set, but can be efficiently synthesized. Table 8-1 lists operations
that can be synthesized using DSP56800 instructions.
Table 8-1. Operations Synthesized Using DSP56800 Instructions
Operation
JRSET, JRCLR
BR1SET, BR1CLR
JR1SET, JR1CLR
Jumps if all selected bits in bit field is set or clear
Branches if at least one selected bit in bit field is set or clear
Jumps if at least one selected bit in bit field is set or clear
Software Techniques
Description
8-1