Rev. 1.50, 10/04, page 244 of 448
10.1.24 JMP (Jump): Branch Instruction
Format Operation Instruction Code Cycle T Bit
JMP @Rn Rn → PC 0100nnnn00101011 1 —
Description: Unconditionally makes a delayed branch to the address specified by Rn.
Notes: As this is a delayed branch instruction, the instruction following this instruction is executed
before the branch destination instruction.
Interrupts are not accepted between this instruction and the following instruction. If the following
instruction is a branch instruction, it is identified as a slot illegal instruction.
Operation:
JMP(int n)/* JMP @Rn */
{
unsigned int temp;
temp = PC;
PC = R[n];
Delay_Slot(temp+2);
}
Example:
MOV.L JMP_TABLE,R0 ;R0 = TRGET address
JMP @R0 ;Branch to TRGET.
MOV R0,R1 ;MOV executed before branch.
.align 4
JMP_TABLE: .data.l TRGET ;Jump table
...........
TRGET: ADD #1,R1 ;← Branch destination
Possible Exceptions:
• Slot illegal instruction exception