【问题标题】:How to set one register to the value stored in another register in the optimal way in MIPS?如何在 MIPS 中以最佳方式将一个寄存器设置为存储在另一个寄存器中的值?
【发布时间】:2020-07-15 22:57:10
【问题描述】:

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

  • 移动 $a0, $s3
  • 或$a0、$zero、$s3

哪一个是更好的实践或更优化的?为什么? 还有其他更好的方法吗?

【问题讨论】:

  • 我没有使用 MIPS 的经验,但是 x86。我想说,使用move 至少更具可读性。
  • 您的最佳标准是什么? move 是可读的,但是硬件没有的伪指令被汇编器翻译成类似addu 的东西; or 可读性较差,但却是一条真实的指令;两者都导致相同的操作,它们的大小和速度都相同。
  • 我认为可能或会更快

标签: mips mips32 mars-simulator


【解决方案1】:

指令or $a0, $zero, $s3等价于addi $a0, $s3, 0,请阅读本帖:MIPS instruction set move vs add/addi 0 for storing values?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    相关资源
    最近更新 更多