Что именно делает инструкция BEQ?
У меня есть следующий фрагмент кода сборки, который я пытаюсь понять. Это сборка для микроконтроллера MC68332.
LOOP
some instructions
some more instructions
BEQ LOOP
я погуглил BEQ, и я нашел, что это означает ветвь на нулевом результате, но я все еще не понимаю, что она делает. Сравнивает ли он результат последней инструкции с 0, и если он равен 0, он возвращается к линии цикла?
2 ответов
в семействе Motorola 68k это означает "ветвь, если она равна", что означает "перейти к заданному адресу, если установлен нулевой флаг" (например, когда предыдущее сравнение было успешным).
однако 68332, похоже, отличается от этого и на основе "синтаксиса верхнего регистра" это может быть макрос-оболочка вокруг другой инструкции, которая по существу делает то же самое.
программисты сборки, которые переносят код из других систем, могут использовать аналогичные макросы для облегчения процесса переноса.
точный ответ будет зависеть от того, какой микроконтроллер вы используете. В общем случае, если операндов нет, ожидается, что BEQ будет ветвиться, если аккумулятор равен 0. Это, скорее всего, на простых микросхемах, где аккумулятор является основным регистром для расчетов.
какой микроконтроллер вы используете? Вы должны быть в состоянии найти определение для инструкции BEQ в руководстве для этого микро.