问题标签 [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 回答
1820 浏览

assembly - 位算术 - 将两个结果连接到一位

我正在MARS 模拟器(Assembly)中做作业,但我被困在一个部分。

我们必须将一个 32 位字加载到寄存器中。

第 0 到 7 位代表蓝色,第 8 到 15 位代表绿色,第 16 到 23 位代表红色。其余位设置为零。

例如,黄色是 0x00ffff00。

即内存顺序中的 BGR0 颜色格式,或本地字节序机器字中的 0RGB。

作业分为三个任务,我在做最后一个。我们有一个 64 x 64 像素的显示器(每个像素为 4*4,因此总宽度和高度为 256)。红色始终设置为 0,绿色为 4 * 行数,蓝色为 4 * 列数。假设我们在 2 行和 3 行,绿色值为 2*4,蓝色值为 3*4。因此,在此示例中,在十六进制中,12 为 0xc,8 为 0x08,应加载到寄存器中的数字为 0x00000c08。

所以我的第一个问题是如何使用位代数来连接 2 次乘法的结果?

我的第二个问题是:假设我们在最后一个像素行和列:64 * 4 和 64 * 4。结果是 256,我们不能只使用 8 位来表示这个数字,所以我可能不应该使用像素1 到 64 但 0 到 63。对吗?

0 投票
1 回答
7424 浏览

assembly - 如何从 MIPS 组件打印到屏幕

有人告诉我这是怎么做的,但是当我运行带有显示和键盘添加的模拟器时,屏幕上仍然没有输出。我究竟做错了什么?

0 投票
0 回答
614 浏览

assembly - 调整 mips-gcc 输出以使用 MARS

mips-gcc 生成的 MIPS 汇编代码几乎(但不完全)在 Mars MIPS 模拟器上运行。例如:

  • 编译器生成“j $31”而不是“jr $31”
  • 编译器将 .align 指令放在文本段中,Mars 不允许这样做。

此外,生成的程序集还没有完全设置好,无法正常启动和停止(即最后没有 sycall 10)。

这些问题似乎都可以通过简单的脚本轻松解决;但是,在我重新发明轮子之前,我想知道:(1)是否有任何 gcc 标志可以使这些问题中的一些消失?(2) 有没有人知道现有的程序可以修复 mips-gcc 输出,以便在火星上运行?

(FWIW,我在 gcc 3.3.6 和 4.6.1 上都看到了相同的行为。)

0 投票
1 回答
1140 浏览

mips - 将二进制数据解码为 MIPS 指令

我无法弄清楚这两个 MIPS 指令是什么。

有没有办法使用 MARS IDE 来弄清楚这些指令是什么?

0 投票
1 回答
1418 浏览

mips - 打开二进制文件进行读取

我正在尝试打开二进制文件以在 mars mips 模拟器中读取:

0 投票
2 回答
4461 浏览

assembly - 在 MIPS 中使用系统调用 8 验证用户输入

我正在努力寻找一种有效的方法来检查用户是否使用系统调用 8 输入了只有数字(0~9)的有效输入

输入是 4 个字节长(1 个字),
我需要检查每个字节(char)是否是数字,

我想过尝试运行一个循环并检查它的 ascii 值是否低于 48('0' ascii 十进制值),
或高于 57('9' ascii 十进制值),

这是一种有效的方法吗?
如果是这样,在 MIPS 中实现这种 if 语句的正确方法是什么?
例如

*注意:假设我确实有一个标志知道在哪里停止循环

*编辑:这是代码的一部分,以使其更清晰:

0 投票
1 回答
715 浏览

c++ - 如何使用旧版 glibc 编译 SPEC CPU 2006 基准测试?

有人可以帮助我让 SPEC 基准测试选择我系统上存在的 glibc 版本 2.6.1,而不是默认的 gcc 采用吗?主要 glibc 版本低于

Spec benchmark 有一个配置文件,它通过给出 gcc 位置的路径来选择编译器。我希望我可以对此配置文件进行一些更改并将其指向不同的文件夹。

我需要这样做,因为我想在内核映像具有 glibc 2.6.1 的模拟系统上运行此基准测试。该模拟系统使用 gem5 进行模拟,gem5 是一个周期精确的系统模拟器

任何帮助表示赞赏。谢谢。

0 投票
0 回答
1040 浏览

mars-simulator - mips 设置变量问题

编写一段 MIPS 代码,给定 $s0 和 $s1 中的值,将以下内容放入 $t* 寄存器:

换句话说,对于从 $t2 到 $t7 的每个寄存器,它存储前两个 $t* 寄存器值的总和。$s0 和 $s1 寄存器包含初始值。不要在代码中设置 $s0 和 $s1 的值。相反,学习如何使用 MARS 手动设置它。将您的代码保存到 sum.s 中。

所以我认为它只是想让我去

ETC

但是不在我的代码中而是在 MARS 中设置 $s0 和 $s0 的值是什么意思?我意识到 MARS 是一个 IDE,但是如何使用 MARS 设置变量?

还有一个问题,你如何在 MARS 中设置断点?我可以用 gui 版本做到这一点,但他们希望我们使用终端。

0 投票
1 回答
2336 浏览

assembly - 设置输入变量

问题问:

编写一段 MIPS 代码,给定 $s0 和 $s1 中的值,将以下内容放入 $t* 寄存器:

换句话说,对于从 $t2 到 $t7 的每个寄存器,它存储前两个 $t* 寄存器值的总和。$s0 和 $s1 寄存器包含初始值。不要在代码中设置 $s0 和 $s1 的值。相反,学习如何使用 MARS 手动设置它。将您的代码保存到 sum.s 中。

好的,这并不难:

... 等等

但是最后一部分是什么意思?“不要在代码中设置 $s0 和 $s1 的值。相反,学习如何使用 MARS 手动设置它。将代码保存到 sum.s 中。” ?

0 投票
1 回答
2088 浏览

assembly - MIPS 中的平方数

我想在 .asm 中创建一个子例程,可以查看终端中给出的数字是否是 2 的平方。

即:我选择数字 5,是 2^x = 5?我的子程序将进行几个除法来检查除法的其余部分是 0 还是 1,这将告诉我 5 是否是 2 的平方。

例如,在 CI 中写了这段代码:

组装中的等价物是什么?