Introduction
Every piece of non-trivial software needs flow-control structures to divert program flow according to conditions. Assembly being the lowest-level programming language provides only primitives for control structures. Typically, machine operations affect flags in the CPU, and conditional branches/jumps implement the flow control. In assembly, all higher-level control structures need to be constructed from such primitives.