Interesującą zmianą w stosunku do innych architektur jest użycie 4-bitowego kodu warunkowego na początku każdej instrukcji. Dzięki temu każda instrukcja może być wykonana warunkowo. Ogranicza to przestrzeń dostępną, na przykład, dla instrukcji przeniesień w pamięci, ale z drugiej strony nie ma potrzeby stosowania instrukcji rozgałęzień dla kodu zawierającego wiele prostych instrukcji warunkowych. Klasycznym przykładem jest implementacja algorytmu Euklidesa wyznaczania największego wspólnego dzielnika.
Funkcja w języku C wyglądająca tak:
while (i != j)
if (i > j) i -= j; else j -= i;
W asemblerze procesora ARM będzie miała postać następującej pętli:
loop CMP Ri, Rj ; porównaj i z j, ustawiając flagi warunkowe: ; - "GT" dla (i > j) ; - "LT" dla (i < j) ; - "NE" dla (i != j) SUBGT Ri, Ri, Rj ; jeśli "GT" (większa niż ang. greater than), wykonaj i := i - j; SUBLT Rj, Rj, Ri ; jeśli "LT" (mniejsza niż ang. less than), wykonaj j := j - i; BNE loop ;