blo
Branch if unsigned lower
Branches to the specified address if unsigned lower.
Sizes .b .s .w .l
Used in
- Compare and branchM68K assembly
- Interrupts and cyclesM68K assembly
XNZVC –––––
- Changes no flag
- Reads C
Forms
blo
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: