Freescale-semiconductor StarCore SC140 Uživatelský manuál Strana 425

  • Stažení
  • Přidat do mých příruček
  • Tisk
  • Strana
    / 760
  • Tabulka s obsahem
  • KNIHY
  • Hodnocené. / 5. Na základě hodnocení zákazníků
Zobrazit stránku 424
BTD
SC140 DSP Core Reference Manual A-111
BTD Branch If True Using a Delay Slot (AGU) BTD
Description
Status and Conditions that Affect Instruction
Status and Conditions Changed by Instruction
None.
Example
BTD lbl
Operation Assembler Syntax
If T==1, then PC + displacementPC
BTD <label
BTD >label
BTD <label
BTD >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 [–2
8
displacement < 2
8
,
W]) or a long branch (>label [–2
20
displacement < –2
8
, W and 2
8
displacement < 2
20
, W]). The
execution set in the delay slot immediately following the BTD instruction is executed unconditionally after
the execution set containing the BTD instruction.
Register Address Bit Name Description
SR[1] T True bit
Instruction Result
cmpeq.w #$35,d1 Equal, so T bit in SR set.
btd lbl move.w #$29,d1 Branch taken, move.w executed, d1=$29.
inc d1 Increment executed in the delay slot, d1=$2A.
move.w #$47,d2 Skipped over.
- - - - Skipped over.
- - - - Skipped over.
- - - - Skipped over.
lbl move.w #$1A,d4 Execution continues here at lbl.
Register/Memory Address Before BTD After
SR
$00E0 0002
Zobrazit stránku 424
1 2 ... 420 421 422 423 424 425 426 427 428 429 430 ... 759 760

Komentáře k této Příručce

Žádné komentáře