【问题标题】:Why doesn't MIPS have a Store Immediate instruction just like Load Immediate instruction?为什么 MIPS 没有像 Load Immediate 指令一样的 Store Immediate 指令?
【发布时间】:2017-10-24 02:19:28
【问题描述】:

MIPS 有一个 Load Immediate (LI) 伪指令,用于将 32 位立即数加载到寄存器中。但它没有立即存储 (SI) 指令将 32 位立即值存储到内存中。谁能解释一下为什么?

【问题讨论】:

  • mips 没有立即加载指令,有 lui 和 ori 是真正的指令 li 是伪指令,可以将其视为宏。
  • 这些(lui 和 ori)都不是在内存上操作的,所以有一个“就像”li 一样的 si 也意味着不在内存上操作。
  • 一条同时包含立即数和内存地址的指令会比指令格式允许的长得多。
  • 伪指令是汇编器的特性,而不是处理器的特性。 MIPS CPU 没有 LI 指令,它是具有 LI 伪指令的 MIPS 汇编程序。这意味着没有什么能阻止您创建自己的汇编程序或修改现有的汇编程序来创建自己的 SI 伪指令。您甚至可以使用现有汇编程序的宏功能来完成。但是,您需要使您的伪指令生成 MIPS CPU 可以执行的真实 MIPS 指令。因此,您需要弄清楚您的 SI 指令将使用哪些真正的 MIPS 指令。

标签: assembly mips instruction-set immediate-operand instruction-encoding


【解决方案1】:

立即加载是从立即到寄存器,立即存储将是注册到...立即...这没有意义。你想存储到内存你加载一个带有数据的寄存器一个带有地址的寄存器并进行存储。它(据说)是一种加载和存储架构,您通过寄存器而不是直接执行所有操作(内存方面)。

【讨论】:

  • 我的问题是,假设 Store Immediate(SI) 是一条将 32 位立即数存储到内存的指令,为什么它没有在 MIPS 中实现?
  • 为什么会这样?为什么 mips 没有记忆移动或添加等的记忆?为什么它没有 HACF 指令?它当然不适合 mips 设计,这是肯定的(立即存储到内存中,而不涉及作为源的寄存器),但你必须去问问设计师他们那天在想什么。
猜你喜欢
  • 2022-01-24
  • 1970-01-01
  • 2011-09-01
  • 2012-01-10
  • 1970-01-01
  • 1970-01-01
  • 2014-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多