假设我要比较一个数据寄存器,并且必须将其与等于 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}
在汇编程序中,没有支撑块,只有 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:
;