在我的教科书中,有以下几行代码:
addu $t0, $t1, $t2
nor $t3, $t1, $zero
sltu $t3, $t3, $t2
bne $t3, $zero, Overflow
我理解addu函数,但是当我接触nor函数以及之后的所有内容时,我不明白它的作用。教科书只是说第二行的 t3 = t1 - 1 的 2 的补码,但我不明白它在二进制中是如何工作的。它是否会将所有 0 替换为 1,反之亦然,然后将其解释为 2 的补码,从而产生负数?这本书的解释对我来说没有意义。
最佳答案
是的nor
- 用$zero
对一个值进行简单地反转所有位。例如,二进制 101011
与 0 的取反结果为二进制 010100
。这也是汇编器 psuedo-op not
的一种实现方式。
关于MIPS 'nor' 在代码中的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29355492/