
2-40
SC140 DSP Core Reference Manual
Core Architecture
2.3.3.3 PC Relative Mode
The PC relative address mode is used to calculate the program destination of change-of-flow instructions
such as branches (BRA). In the PC relative addressing mode, the instruction contains a signed
displacement operand. The operand address is obtained by left-shifting (multiplying by two) the
displacement and adding the result to the value of the program counter (PC). The operand is left-shifted
because the addresses of the program instructions are word-aligned, and memory addressing is in units of
bytes. The arithmetic used is always linear.
The number of bits occupied by the displacement in the instruction differs with the different kinds of PC
relative instructions. In all cases, the displacement is first sign-extended to 32 bits, then multiplied by two,
and added to the PC to obtain the operand address.
In the one-word conditional branch instructions, the displacement occupies 8 bits of the instruction word
and can range from [-256] to [254] words. In the one-word unconditional branch instructions, the
displacement occupies 10 bits of the instruction word and can range from [-1024] to [1022] words. In the
two-word branch instructions, the displacement occupies 20 bits and can range from [-1,048,576] to
[1,048,574] words. In the DOSETUP instruction, the displacement occupies 16 bits of the instruction. The
displacement for the start address (SA) can range from [-65,536] to [65,534] words.
2.3.3.4 Special Addressing Modes
The special addressing modes do not use an address register when specifying an effective address. They
either use an immediate value that is included in the instruction for the data value, such as the data value
address, or they use a register that is implicitly referenced by the instruction for the data value.
Immediate Short Data
— A 5-bit, 6-bit, or 7-bit operand is part of the instruction operation word.
The 5-bit zero-extended operand is used for DALU and AGU arithmetic instructions. The 6-bit
zero-extended operand is used for DALU instructions to move short immediate data to an LCn
register. The 7-bit sign-extended operand is used for immediate moves to a register. This reference
is classified as a program reference.
Immediate Word Data
— This addressing mode requires a one-word instruction extension. The
immediate data is a 16-bit operand. This reference is classified as a program reference.
Immediate Long Data
— This addressing mode requires a two-word instruction extension. The
immediate data is a 32-bit operand. This reference is classified as a program reference.
Absolute Word Address
— This addressing mode requires a one-word instruction extension. The
operand address occupies 16 bits in the instruction operation words, and is zero-extended to form a
32-bit address. This reference is classified as a memory reference.
Absolute Long Address
— This addressing mode requires a two-word instruction extension. A
32-bit address is contained in the instruction words. This reference is classified as a memory
reference.
Absolute Jump Address
— The operand occupies 32 bits in the instruction operation words. It
requires a two-word instruction extension. This reference is classified as a program reference.
Implicit Reference
— Some instructions make implicit reference to the PC, normal or exception
stack, loop registers (SA0, SA1, SA2, SA3, LC0, LC1, LC2, LC3), or status register (SR). These
registers are implied by the instruction, and their use is defined by the individual instruction
descriptions.