EasyManua.ls Logo

Renesas SuperH SH-4A - BT (Branch if True): Branch Instruction

Renesas SuperH SH-4A
472 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Rev. 1.50, 10/04, page 217 of 448
10.1.9 BT (Branch if True): Branch Instruction
Format Operation Instruction Code Cycle T Bit
BT label If T = 1
PC + 4 + disp × 2 PC
If T = 0, nop
10001001dddddddd 1 —
Description: This is a conditional branch instruction that references the T bit. The branch is taken
if T = 1, and not taken if T = 0.
The branch destination is address (PC + 4 + displacement × 2). The PC source value is the BT
instruction address. As the 8-bit displacement is multiplied by two after sign-extension, the branch
destination can be located in the range from –256 to +254 bytes from the BT instruction.
Notes: If the branch destination cannot be reached, the branch must be handled by using BT in
combination with a BRA or JMP instruction, for example.
Operation:
BT(int d) /* BT disp */
{
int disp;
if ((d&0x80)==0)
disp = (0x000000FF & d);
else disp = (0xFFFFFF00 | d);
if (T==1)
PC = PC + 4 + (disp<<1);
else PC += 2;
}
Example:
SETT ;Normally T = 1
BF TRGET_F ;T = 1, so branch is not taken.
BT TRGET_T ;T = 1, so branch to TRGET_T.
NOP ;
NOP ;
TRGET_T: ; BT instruction branch destination

Table of Contents

Related product manuals