Dein obiger Code wäre korrekt, aber länger als ohne IT, mit:
it cc
bcc setLow
b setHigh
So ein redundant anmutender IT Block wird erst wirklich verständlich,
wenn man neben dem Thumb2 Befehlssatz auch den nativen ARM Befehlssatz
kennt. ARM hatte die ASM-Notation im zweiten Anlauf so hingedeichselt,
dass man für beide den gleichen Quellcode schreiben kann. Bei Thumb2
sind die Bedingungen der Befehle im IT-Block irrelevant, bei ARM
hingegen wird die Zeile mit dem IT-Befehl verworfen. Der Assembler
schaut aber nach, ob es für beide Fälle stimmig ist.
Der erzeugte Code ist deshalb bei Thumb2
it cc
b setLow
b setHigh
und bei ARM
bcc setLow
b setHigh