Что именно делает инструкция BEQ? - PullRequest
7 голосов
/ 06 февраля 2012

У меня есть следующий фрагмент кода сборки, который я пытаюсь понять.Это сборка для микроконтроллера MC68332.

LOOP
    some instructions
    some more instructions
BEQ LOOP

Я гуглил BEQ и обнаружил, что это означает переход на нулевой результат, но я все еще не совсем понимаю, что он делает.Сравнивает ли он результат последней инструкции с 0, и если он равен 0, он возвращается к строке LOOP?

Ответы [ 2 ]

4 голосов
/ 06 февраля 2012

В семействе Motorola 68k это означает «ответвление, если равно», что означает «переход на заданный адрес, если установлен нулевой флаг» (например, когда предыдущее сравнение было успешным).и, основываясь на «синтаксисе в верхнем регистре», это может быть макрос-оболочка вокруг другой инструкции, которая по сути делает то же самое.

Программисты сборки, которые переносят код из других систем, могут использовать подобные макросы для облегчения процесса портирования.

1 голос
/ 06 февраля 2012

Точный ответ будет зависеть от того, какой микроконтроллер вы используете.В общем случае, если нет операндов, ожидается, что BEQ будет разветвляться, если значение «Аккумулятор» равно 0. Это наиболее вероятно на простых микросхемах, где «Аккумулятор» является основным регистром для расчетов.

Какой микроконтроллер вы используете?Вы должны быть в состоянии найти определение инструкции BEQ в руководстве для этого микро.

...