ADSP-BF53x/BF56x Blackfin Processor Programming Reference
4-11
Program Sequencer
Branches can be direct or indirect. A direct branch address is determined
solely by the instruction word (for example,
JUMP 0x30
), while an indirect
branch gets its address from the contents of a DAG register (for example,
JUMP(P3)
).
All types of
JUMP
s and
CALL
s can be PC-relative. The indirect
JUMP
and
CALL
can be absolute or PC-relative.
Direct Short and Long Jumps
The sequencer supports both short and long jumps. The target of the
branch is a PC-relative address from the location of the instruction, plus
an offset. The PC-relative offset for the short jump is a 13-bit immediate
value that must be a multiple of two (bit 0 must be a 0). The 13-bit value
gives an effective dynamic range of –4096 to +4094 bytes.
The PC-relative offset for the long jump is a 25-bit immediate value that
must also be a multiple of two (bit 0 must be a 0). The 25-bit value gives
an effective dynamic range of –16,777,216 to +16,777,214 bytes.
If, at the time of writing the program, the destination is known to be less
than a 13-bit offset from the current PC value, then the
JUMP.S 0xnnnn
instruction may be used. If the destination requires more than a 13-bit
offset, then the
JUMP.L 0xnnnnnnn
instruction must be used. If the desti-
nation offset is unknown and development tools must evaluate the offset,
then use the instruction
JUMP 0xnnnnnnn
. Upon disassembly, the instruc-
tion is replaced by the appropriate
JUMP.S
or
JUMP.L
instruction.
Rather than hard coding jump target addresses, use symbolic addresses in
assembly source files. Symbolic addresses are called labels and are marked
by a trailing colon. See the Visual DSP++ Assembler and Preprocessor Man-
ual for details.
Summary of Contents for ADSP-BF53x Blackfin
Page 38: ...Conventions xxxviii ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 134: ...System Reset and Powerup 3 18 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 324: ...Instruction Overview 7 20 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 486: ...Instruction Overview 13 28 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 512: ...Instruction Overview 14 26 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 604: ...Instruction Overview 15 92 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 688: ...Instruction Overview 18 48 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 742: ...Instruction Overview 19 54 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 752: ...Examples 20 10 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 790: ...ADSP BF535 Flags A 10 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 800: ...Performance Monitor Registers B 10 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 1042: ...Index I 40 ADSP BF53x BF56x Blackfin Processor Programming Reference...