Код
mov r1, #0
cmp r1, #0
bсс first
b next
first:
/* Что-то */
next:
/* Еще что-то */
cmp r1, #0
bсс first
b next
first:
/* Что-то */
next:
/* Еще что-то */
Условие перехода на метку first (согласно АРМовской документации - флаг С должен быть сброшен (Carry Clear)) должно выполняться и переход должен произойти (установлен только флаг Z), но под отладчиком (GNU gdb 6.0 из комплекта с gnuarm.org) перехода не происходит и исполнение в результате переходит на next, т.е. проскакивает bсс first. В чем тут может быть дело? Или я просто чего-то не понимаю?