如何在MIPS中以最佳方式将一个寄存器设置为另一个寄存器中存储的值?

如何在MIPS中以最佳方式将一个寄存器设置为另一个寄存器中存储的值?,mips,mips32,mars-simulator,Mips,Mips32,Mars Simulator,假设我们想要设置$a0=$s3 我知道有: 移动$a0,$s3 或$a0、$0、$s3 哪一个更好的实践或更优化?为什么? 还有更好的方法吗?指令或$a0,$zero,$s3相当于addi$a0,$s3,0,因此请阅读以下线程:我没有MIPS的经验,但是x86。我想说,使用move至少更具可读性。您的最佳标准是什么move是可读的,但是硬件没有的伪指令被汇编程序翻译成类似于addu的东西或可读性较差,但却是真正的指令;两者的结果是相同的操作,它们都是相同的大小和相同的速度。我想可能会更快,也

假设我们想要设置$a0=$s3 我知道有:

  • 移动$a0,$s3
  • 或$a0、$0、$s3
哪一个更好的实践或更优化?为什么?
还有更好的方法吗?

指令
或$a0,$zero,$s3
相当于
addi$a0,$s3,0
,因此请阅读以下线程:

我没有MIPS的经验,但是x86。我想说,使用
move
至少更具可读性。您的最佳标准是什么
move
是可读的,但是硬件没有的伪指令被汇编程序翻译成类似于
addu
的东西<代码>或可读性较差,但却是真正的指令;两者的结果是相同的操作,它们都是相同的大小和相同的速度。我想可能会更快,也可能会更快