Перейти к содержанию
    

Команда перехода по условию CC у ARM

Есть код, который содержит в себе следующие команды:

    mov    r1, #0
    cmp    r1, #0  
    bсс    first  
    b  next
first:    
       /* Что-то */
next:
       /* Еще что-то */

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все, разобрался... Оказалось, я посчитал что 6 = 2^2, т.е. установлен только бит Z, а на самом-то деле С тоже был установлен... Нужно меньше работать. ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...