Az assembly nyelv másik szegényes tulajdonsága a vezérlési szerkezetek hiánya. Lényegében csak az alábbi vezérlési szerkezetek találhatóak meg:
Szekvencia: a program utasításainak végrehajtása a memóriabeli sorrend alapján történik.
Feltétlen vezérlésátadás (ugró utasítás): a program folytatása egy másik memóriabeli pontra tevődik át, majd attól a ponttól kezdve a végrehajtás újra szekvenciális.
Feltételes vezérlésátadás (feltételes ugró utasítás): mint az egyszerű ugró utasítás, de az ugrást csak akkor kell végrehajtani, ha az előírt feltétel teljesül.
Visszatérés az ugró utasítást követő utasításra (azon helyre, ahonnan az ugrás történt).
Ezekből kellett összerakni a programot. Egy egyszerű elágazást ennek megfelelően az alábbi módon kellett kódolni:
HA feltétel AKKOR… feltétel kiértékelése …
Ut1UGRÁS_HA feltétel HAMIS CIMKE1-re
Ut2UT1
KÜLÖNBENUT2
Ut3UGRÁS CIMKE2-re
Ut4@CIMKE1:
HVÉGEUT3
folytatásUT4
@CIMKE2:
folytatás
A fentiből talán sejthető, hogy az assembly nyelvű programból kibogozni, hogy itt valójában feltételes elágazás történt – nem egyszerű. Hasonló problémákkal jár a ciklusok megtervezése és kódolása is – különösen az egymásba ágyazott ciklusok esete.