Есть простой код на ассемблере:
Код
#define delay(tick) __asm("mov r0, %0 \n" "cycle: subs r0, #1 \n" " bhi cycle"::"r"(tick / 2))
Главная его проблема в том, что переход происходит на метку (cycle:), из за чего получается использовать его только один раз. При повторном использовании компилятор ругается, что такая метка уже существует.
Подскажите, как можно уйти от метки, не увеличивая сильно число команд?