问题标签 [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.

0 投票
1 回答
1417 浏览

assembly - 数据指令中的 MIPS 指令

我试图弄清楚这个程序做了什么,但我感觉 MARS 没有正确处理 .data 指令。

如果在 .data 指令下给出汇编指令,数据段中存储了什么?当我在 MARS(MIPS 汇编器和运行时模拟器)中运行它时,它只是将零值存储在 0x10010000(应该存储静态数据的位置)。我期待它存储机器代码lui $r1, 0xFFC0(即00111100000010011111111111000000)。

谢谢!

0 投票
0 回答
676 浏览

assembly - 在 MIPS 中显示除法结果

嗨,我正在用 MIPS 编写一个小程序,我有这个代码

(这不是完整的代码,只是部分处理部门)

$t1 是 2,$t2 是 9。

所以,2/9 是 0.2222222222222222

但是当我运行它时,我只得到 0.0

为什么?,我如何显示真实结果?

提前致谢。

0 投票
1 回答
35840 浏览

assembly - 将整数读入 MIPS 中的局部变量

如何将整数读入 MIPS 中的局部变量?

问题要求我使用将整数变量分配为局部变量的概念。(我教科书中的一个问题。)

0 投票
3 回答
3687 浏览

assembly - 如何在不使用伪指令的情况下加载内存地址?

我正在尝试使用MARS 模拟器自己学习 MIPS 汇编语言。

出于教学原因,我限制自己不使用伪指令。

在尝试将某些数据的地址放入寄存器时,我遇到了一个问题,因为我无法使用la.

我尝试lui与 结合使用ori,就像我直接加载一个数字一样,但无济于事:

这在没有伪指令的情况下使用专门的 MARS是否可行?如何?

提前致谢!

0 投票
1 回答
32980 浏览

string - 访问字符串中的一个字符

我正在使用带有系统调用函数的 SPIMS 或 MARS 之类的东西。

我正在阅读一个字符串(它可以工作,因为我可以打印出来)如下:

但是,我在访问字符串的单个字符时遇到问题。所以如果我想访问第一个字符并打印它,我正在尝试这个:

如果我尝试这样的事情:

这会打印出整个字符串,因为字符串指向整个字符串。

如果我尝试类似:

它给了我一个超出范围的错误。我不明白为什么 - 字符不是一个字节长,这只是将字符串中的第一个字节加载到 $a0 中?

谢谢

0 投票
1 回答
2423 浏览

assembly - 如何使用临时寄存器 - 返回后是否保留值?

我正在使用 MARS 模拟器在 MIPS 程序集中编写程序。我jal用来进行函数调用,然后jr $ra在结束时使用返回程序中的原始点。

我感到困惑的是,$t我在函数中使用的寄存器在返回主程序后仍然具有其中的值。

我是否应该在返回之前将这些寄存器归零,以便将来使用临时寄存器的函数可以从头开始?我在这里错过了什么吗?

0 投票
1 回答
1495 浏览

assembly - 指定标签的内存地址

是否可以更改或修改 MIPS 中标签的地址?(我正在使用火星)

例如...

现在'x'将随机存储在内存中,但如果我想将它存储在特定地址怎么办?可能吗?

0 投票
2 回答
3627 浏览

assembly - 为什么我不能在 MARS 中使用 li.s?

我不能在 MARS 中使用 li.s。我是 MIPS 编程的新手,我试图不使用任何协处理器。为什么我不能使用 li.s 是 MARS 程序?如果有人可以带领我走向新的方向,那将非常有帮助!

0 投票
1 回答
25994 浏览

assembly - MIPS "la" 伪指令

在 MIPS 中,la指令转换为luiand ori。然而,火星模拟器似乎根本没有这样做。当我转储以下机器代码时:

我得到:

这很明显。它la作为一条指令转储。火星是做什么的?我怎样才能让它解释laluiand ori

谢谢,

0 投票
1 回答
4301 浏览

assembly - 解码 BNE MIPS 指令

我在 MARS 模拟器中运行以下 MIPS 代码:

在机器代码中,bne指令如下:00010101011000001111111111111001. 在这种情况下,立即数是:1111111111111001等于:0xFFF9。MIPS 将采用该值,将其向左移动 2(将其乘以 4)并将其程序计数器设为该数字。但是,0xFFF9乘以 4 是0x3FFE4。这怎么可能?程序计数器SLL应该是 0x18 而不是0x3FFE4。我在这里想念什么?

谢谢,