MIPS 'nor' 在代码中的用法

标签 mips spim

在我的教科书中,有以下几行代码:

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/

相关文章:

assembly - 这个 MIPS/QtSPIM While 循环代码有什么问题

string - 在 MIPS 程序集中反转字符串

assembly - 运行代码时出现错误 MIPS “spim: (parser) syntax error”

c++ - 将 C++ 代码转换为 SPIM 程序集

mips - MIPS 分支指令上的偏移量是符号扩展的吗?

c - MIPS(或 SPIM): Loading floating point numbers

assembly - 如何转换 Mips 伪指令?

c++ - 使用 vector 引起的段错误

sorting - 如何在 MIPS 中使用系统调用 9 (sbrk) 进行动态内存分配

将 C 代码转换为 MIPS 汇编