在MIPS中,使用OR或ADD组合两个没有重叠字段的寄存器会更好吗?

时间:2016-03-01 18:39:39

标签: assembly mips

例如,如果我有$ t1:

abcd efgh 0000 0000

和$ t2:

0000 0000 ijkl mnop

其中一个字母可以是0或1。

如果我想要这个$ t0:

abcd efgh ijkl mnop

以下哪项更好?

add $t0, $t1, $t2
or  $t0, $t1, $t2

注意:我知道寄存器是32位,但为了简单起见,假设它们是16位。

2 个答案:

答案 0 :(得分:1)

尝试询问,"如果 重叠怎么办?"

现在可能没有,但是如果事情发生变化会有重叠怎么办?那么它应该表现为add还是or

在相关的说明中,您对此有何意图?您是否尝试执行某些算术(使用add)?你在做逻辑操作(使用or)吗?你在组合旗帜(使用or)吗?选择最能表达您对代码的意图的那个。

答案 1 :(得分:0)

因此,在做了一些更多的研究之后,似乎有人使用OR而不是ADD。根据这些链接:1 2,ADD使用二进制补码运算,因此如果标记为a(在本例中为符号位)的位为1,则无效。