bcs

Branch if carry set

Branches to the specified address if carry set.

Sizes .b .s .w .l

XNZVC –––––
  • Changes no flag
  • Reads C

Forms

  • bcs

Operands

label
A branch target, written as a label or address. The assembler calculates the relative displacement. More

The suffix selects the condition. See condition codes. The size sets the branch’s reach: about 128 bytes in either direction for .s (or .b), and 32 KB for .w. With no size, the assembler chooses .s for a known target when the short encoding can reach it. On the 68020, it chooses .l for a known target beyond .w reach. All other cases use .w, including forward references. On the 68020, .l reaches anywhere in memory. See long branches. On the 68000 and 68010, .l is treated as .w, as in EASy68K.

* --- Loop: count down from 10 ---
move.l #10, d0
move.l #0, d1
loop:
    addq.l #1, d1
    subq.l #1, d0
    bne loop ; branch if d0 != 0

* --- Conditional skip ---
move.l #5, d2
move.l #5, d3
cmp.l d3, d2
beq are_equal ; branch if d2 == d3
move.l #0, d4
bra done
are_equal:
    move.l #$FF, d4
done: