如何将"if x >= y"转换为 MIPS 程序集?



所以,基本上,我是MIPS的新手,我遇到了这个问题。

你将如何翻译";如果x>y";在MIPS中,并且需要假设x在$t0中并且y在$t1 中

以下是我尝试的内容

bge $t0, $t1, label

我不确定我做得是否正确。

如果您有以下代码:

if x>=y
// do something
else
// do otherthing
endif

你可以把它写成:

bge $t0, $t1, taken  # branch to taken if x>=y
# do otherthing
b endif
taken:
# do something
endif:

或者您可以重写它以保持高级语句的顺序,使用否定条件跳转:

blt $t0, $t1, else  # branch to else  if x<y
# do something
b endif
else:
# do otherthing
endif:

如果你没有一个";否则";部分然后第二种方法导致更少的代码。所以

if x>=y
// do something
endif

可以翻译为:

blt $t0, $t1, endif  # branch to endif  if x<y
# do something
endif:

最新更新