EasyManua.ls Logo

Renesas SuperH SH-4A - BF (Branch if False): 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 210 of 448
10.1.5 BF (Branch if False): Branch Instruction
Format Operation Instruction Code Cycle T Bit
BF label If T = 0
PC + 4 + disp × 2 PC
If T = 1, nop
10001011dddddddd 1 —
Description: This is a conditional branch instruction that references the T bit. The branch is taken
if T = 0, and not taken if T = 1. The branch destination is address (PC + 4 + displacement × 2).
The PC source value is the BF 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 BF instruction.
Notes: If the branch destination cannot be reached, the branch must be handled by using BF in
combination with a BRA or JMP instruction, for example.
Operation:
BF(int d) /* BF disp */
{
int disp;
if ((d&0x80)==0)
disp = (0x000000FF & d);
else disp = (0xFFFFFF00 | d);
if (T==0)
PC = PC+4+(disp<<1);
else PC += 2;
}
Example:
CLRT ;Normally T = 0
BT TRGET_T ;T = 0, so branch is not taken.
BF TRGET_F ;T = 0, so branch to TRGET_F.
NOP ;
NOP ;
TRGET_F: ; BF instruction branch destination

Table of Contents

Related product manuals