MIPS 中使用 ori 和 addi 初始化值有什么区别?

jcb*_*wni 6 assembly mips

当我想在 MIPS 中的地址中存储一个值时,比如 $a0 中的值 3,我通常只使用 addi $a0, $0, 3。有时我看到人们使用 ori $a0, $0, 3 这样做。是一比另一个更好?有什么不同?

Mic*_*ael 6

两者之间有一些细微的区别:

ADDI

  • 符号- 扩展立即数。
  • 可能导致整数溢出异常(可以通过使用ADDIU来避免)。

ORI

  • 扩展立即数。
  • 不易受到整数溢出的影响。