问题标签 [mars-simulator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - 数据指令中的 MIPS 指令
我试图弄清楚这个程序做了什么,但我感觉 MARS 没有正确处理 .data 指令。
如果在 .data 指令下给出汇编指令,数据段中存储了什么?当我在 MARS(MIPS 汇编器和运行时模拟器)中运行它时,它只是将零值存储在 0x10010000(应该存储静态数据的位置)。我期待它存储机器代码lui $r1, 0xFFC0
(即00111100000010011111111111000000)。
谢谢!
assembly - 在 MIPS 中显示除法结果
嗨,我正在用 MIPS 编写一个小程序,我有这个代码
(这不是完整的代码,只是部分处理部门)
$t1 是 2,$t2 是 9。
所以,2/9 是 0.2222222222222222
但是当我运行它时,我只得到 0.0
为什么?,我如何显示真实结果?
提前致谢。
assembly - 将整数读入 MIPS 中的局部变量
如何将整数读入 MIPS 中的局部变量?
问题要求我使用将整数变量分配为局部变量的概念。(我教科书中的一个问题。)
assembly - 如何在不使用伪指令的情况下加载内存地址?
我正在尝试使用MARS 模拟器自己学习 MIPS 汇编语言。
出于教学原因,我限制自己不使用伪指令。
在尝试将某些数据的地址放入寄存器时,我遇到了一个问题,因为我无法使用la
.
我尝试lui
与 结合使用ori
,就像我直接加载一个数字一样,但无济于事:
这在没有伪指令的情况下使用专门的 MARS是否可行?如何?
提前致谢!
string - 访问字符串中的一个字符
我正在使用带有系统调用函数的 SPIMS 或 MARS 之类的东西。
我正在阅读一个字符串(它可以工作,因为我可以打印出来)如下:
但是,我在访问字符串的单个字符时遇到问题。所以如果我想访问第一个字符并打印它,我正在尝试这个:
如果我尝试这样的事情:
这会打印出整个字符串,因为字符串指向整个字符串。
如果我尝试类似:
它给了我一个超出范围的错误。我不明白为什么 - 字符不是一个字节长,这只是将字符串中的第一个字节加载到 $a0 中?
谢谢
assembly - 如何使用临时寄存器 - 返回后是否保留值?
我正在使用 MARS 模拟器在 MIPS 程序集中编写程序。我jal
用来进行函数调用,然后jr $ra
在结束时使用返回程序中的原始点。
我感到困惑的是,$t
我在函数中使用的寄存器在返回主程序后仍然具有其中的值。
我是否应该在返回之前将这些寄存器归零,以便将来使用临时寄存器的函数可以从头开始?我在这里错过了什么吗?
assembly - 指定标签的内存地址
是否可以更改或修改 MIPS 中标签的地址?(我正在使用火星)
例如...
现在'x'将随机存储在内存中,但如果我想将它存储在特定地址怎么办?可能吗?
assembly - 为什么我不能在 MARS 中使用 li.s?
我不能在 MARS 中使用 li.s。我是 MIPS 编程的新手,我试图不使用任何协处理器。为什么我不能使用 li.s 是 MARS 程序?如果有人可以带领我走向新的方向,那将非常有帮助!
assembly - MIPS "la" 伪指令
在 MIPS 中,la
指令转换为lui
and ori
。然而,火星模拟器似乎根本没有这样做。当我转储以下机器代码时:
我得到:
这很明显。它la
作为一条指令转储。火星是做什么的?我怎样才能让它解释la
为lui
and ori
?
谢谢,
assembly - 解码 BNE MIPS 指令
我在 MARS 模拟器中运行以下 MIPS 代码:
在机器代码中,bne
指令如下:00010101011000001111111111111001
. 在这种情况下,立即数是:1111111111111001
等于:0xFFF9
。MIPS 将采用该值,将其向左移动 2(将其乘以 4)并将其程序计数器设为该数字。但是,0xFFF9
乘以 4 是0x3FFE4
。这怎么可能?程序计数器SLL
应该是 0x18 而不是0x3FFE4
。我在这里想念什么?
谢谢,