BT

BT

Branch If True (AGU)

Operation

 

Assembler Syntax

If T==1, then PC + displacement → PC

BT

<label

 

 

BT

>label

BT

Description

BT <label

BT >label

Branches to label if the true bit is set. If the T bit is set, the program continues executing at location PC + displacement. If the T bit is cleared, the PC is updated to point to the next execution set, and the program continues executing sequentially. The displacement, calculated by the assembler and linker, is a two’s complement integer that represents the relative distance from the current PC to the destination label. The assembler determines if the PC relative displacement is a short branch (<label [–28≤ displacement < 28, W]) or a long branch (>label [–220≤ displacement < –28, W and 28 ≤ displacement < 220, W]).

Status and Conditions that Affect Instruction

Register Address

Bit Name

Description

SR[1]

T

True bit

Status and Conditions Changed by Instruction

None.

Example

BT lbl

Instruction

Result

cmpeq.w #$35,d1

Equal, so T bit in SR set.

bt lbl move.w #$29,d1

Branch taken, move.w executed, d1=$29.

inc

d1

Skipped over.

move.w #$47,d2

Skipped over.

- - - -

Skipped over.

- - - -

Skipped over.

- - - -

Skipped over.

lbl move.w #$16,d4

Execution continues here at lbl, d4=$16.

Register/Memory Address

SR

d1

Before BT

$00E4 0002

$0035

After

$0029

SC140 DSP Core Reference Manual

A-109

Page 423
Image 423
Freescale Semiconductor SC140 specifications Branch If True AGU, BT lbl, If T==1, then PC + displacement → PC, BT label