Итак, вы хотите проверить флаги после этой инструкции.
ADD R0, R0, R3 ; fn = fn + fn1
Но флаги не устанавливаются.Так что добавьте суффикс S.
ADDS R0, R0, R3 ; fn = fn + fn1
Далее вы хотите избежать повторения цикла в случае переполнения.
( Редактировать: Давайте получим этоответвление, если оно не переполнено .)
Для 32-разрядного без знака флаг переноса (C) устанавливается (CS) при переполнении, очищается (CC), если цикл долженбыть повторенным.
BCC whn ; }
Для 32-разрядных со знаком флаг переполнения (V) устанавливается (VS) при переполнении, снимите (VC), если цикл должен повторяться.
BVC whn ; }
(Прошло двадцать лет с тех пор, как я занимался программированием на ARM. Предполагается, что AArch32.)