问题描述
我试图用我自己的学习MIPS汇编语言的 MARS模拟器
I'm trying to learn MIPS assembly language by myself using MARS simulator.
有关说教的原因,我限制自己不使用伪指令。
For didactic reasons I'm limiting myself to not using pseudo-instructions.
在试图得到一些数据的地址到寄存器中,我遇到了一个问题,因为我不能使用拉
。
While trying to get the address of some data into a register, I ran into a problem because I cannot use la
.
我试着用雷
与 ORI
组合,一样的,如果我是直接加载一些,不得要领:
I tried using lui
in combination with ori
, the same as if I was to load a number directly, to no avail:
.data
arr:
.byte 0xa1
.byte 0xb2
.byte 0xc3
.byte 0xd4
.byte 0xe5
.byte 0xf6
.byte 0x7a
.byte 0x8b
.byte 0x9c
.byte 0xad
.text
lui $s0, mem # <--- mars just gives me errors here :(
ori $s0, mem # ?? ...
这是可行使用的明确MARS,无伪指令的?怎么样?
在此先感谢!
推荐答案
要回答这个修改的问题的这是可行的具体使用MARS,无伪指令的?:从的快速扫描MARS文档,它似乎并非如此。 MARS似乎有意限制用于教导的目的
To answer the modified question "is this doable using specifically MARS, without pseudo-instructions?": From a quick scan of the MARS documentation, it appears not. MARS appears to be intentionally restricted for pedagogical purposes.
如果你想尝试这种在一个完整的MIPS模拟器,可以模拟Linux操作系统在MIPS和GNU工具链建成运行code跑,冒一看的。这是免费的,运行在Linux和Windows,但它可能是一个的很多的比你更需要。
If you want to try this on a full MIPS simulator that will simulate the Linux OS running on MIPS and run code built with the gnu toolchain, take a look at the OVP Simulator. This is free and runs on Linux and Windows, but it's probably a lot more than you need.
这篇关于如何不使用伪指令装入内存地址?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!