LOGBOOK

HELP

Quiz Entry - updated: 2026.07.14

What is the difference between signed and unsigned conditional jumps?

Signed comparisons use l/g (less/greater); unsigned ones use b/a (below/above) — the mnemonic tells you how the code treats the value.

The same bit pattern 0xFFFFFFFF interpreted as -1 signed (jl fires vs 0) or 4294967295 unsigned (ja fires vs 0), with the l/g versus b/a jump families

* Same bits, two readings: signed uses jl/jg (less/greater), unsigned uses jb/ja (below/above). *

Signed Unsigned Condition
jl jb Less than / Below
jle jbe Less or equal / Below or equal
jg ja Greater than / Above
jge jae Above or equal

Why it matters: For a value like 0xFFFFFFFF:

  • Signed: it's -1, so jl (jump if less) would trigger vs 0
  • Unsigned: it's 4294967295, so ja (jump if above) would trigger vs 0

Tip: If you see ja/jb/jbe/jae, the code is treating values as unsigned (common for array bounds, sizes, and addresses).

Go deeper:

From Quiz: REVE1 / Assembly Patterns & GDB | Updated: Jul 14, 2026