【问题标题】:How to set the memory adress for an instruction in MIPS?如何为 MIPS 中的指令设置内存地址?
【发布时间】:2019-07-13 06:23:22
【问题描述】:

通常,SPIM 模拟器本身会为程序中的指令分配一个地址。有什么方法可以手动选择存储特定指令的位置吗?

【问题讨论】:

  • 告诉我们你有什么

标签: mips mips32 instruction-set spim qtspim


【解决方案1】:

当然,.text 指令有一个可选参数,您可以在其中指定地址:

.text
.globl main
# This code ends up at the default address for the .text section
main:

li $a0,1
jal foo
li $v0,1
syscall

li $v0,10
syscall

.text 0x430000
# This code ends up at address 0x430000
foo:
li $a0,2
jr $ra

当然,您不能随意选择一个地址。它必须对目标环境有效(在我的示例中为 QtSpim)。


另一种可能性是将所有内容组装到默认位置,然后在运行时将部分代码复制到 RAM 中并从那里执行。

【讨论】:

  • 如果我想在特定位置存储一条指令集,比如说 10 条指令集怎么办。我真正需要做的是以某种方式转到 beq 16 位范围之外的标签。
猜你喜欢
  • 2014-04-02
  • 2022-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多