2

假设我要比较一个数据寄存器,并且必须将其与等于 2 个数字之一进行比较。我该怎么办?

我知道如何仅与一个数字而不是 2 进行比较。

CMP #0, D3
BNE ELSE
REST OF THE CODE HERE

当我想将它与 0 或其他数字(如 7)进行比较时,我该如何比较。在 C++ 中,你会说

if(x == 0 || x == 7)
{code here}
else
{code here}
4

1 回答 1

4

在汇编程序中,没有支撑块,只有 goto。所以想一想,如果x == 0你已经知道你需要“then”代码,但是如果x != 0,你必须测试x == 7以确定是去“then”代码还是“else”代码。

由于 C 能够表达这种结构,我将用它来说明:

你的代码

if(x == 0 || x == 7)
    {code T here}
else
    {code E here}

相当于:

    if (x == 0) goto then;
    if (x == 7) goto then;
else: /* label is not actually needed */
    code E here
    goto after_it_all;
then:
    code T here
after_it_all:
    ;
于 2019-03-23T03:11:59.397 回答