所以,基本上,我是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: