10

我有以下我试图理解的汇编代码片段。它是 MC68332 微控制器的组装。

LOOP
    some instructions
    some more instructions
BEQ LOOP

我用谷歌搜索了 BEQ,发现它意味着结果为零的分支,但我仍然不太明白它的作用。它是否将最后一条指令的结果与 0 进行比较,如果为 0,则返回 LOOP 行?

4

2 回答 2

8

在摩托罗拉 68k 系列上,它代表“如果相等则分支”,这意味着“如果设置了零标志,则跳转到给定地址”,例如之前的比较成功时。

但是,68332 似乎有所不同。基于大写语法,它可能是围绕另一条指令的宏,它基本上做同样的事情。

从其他系统移植代码的汇编程序员可以使用类似的宏来简化移植过程。

于 2012-02-05T20:37:27.187 回答
1

确切的答案将取决于您使用的微控制器。一般来说,如果没有操作数,如果累加器为 0,则 BEQ 会发生分支。这很可能在简单的微控制器上,累加器是计算的主要寄存器。

您使用的是哪个微控制器?您应该能够在该微控制器的手册中找到 BEQ 指令的定义。

于 2012-02-05T20:06:38.283 回答