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

memory-management - 数组列表的动态内存分配?

在 MARS 模拟器上使用 MIPS ISA 读取 midi 文件后,我试图将解码的事件存储在一个数组列表中,该列表将在每个事件的播放时读取。因为包含数据结构是一个数组列表,所以它必须能够动态收缩和增长。

在我的方案中,每个事件将作为两个单词存储在一个数组中。这意味着每次我向数组列表中添加一个元素时,列表必须增加 8 个字节。

我的问题是如何为分配期间不知道大小的数组动态分配足够的内存?然后我将如何浏览这个创建的列表?

0 投票
1 回答
5115 浏览

mips - 带有Mars的MIPS如何在按下回车后读取值?

我如何读取值以便之后可以将它们存储在内存中?我需要让用户输入值,然后按 Enter,这样我才能获取这些值并使用它们。

谢谢

0 投票
3 回答
1598 浏览

assembly - MARS MIPS 汇编器给出错误:不允许扩展(伪)指令或格式

在 Mars(MIPS 的 IDE)中,我发现了非常奇怪的错误。示例代码是这样的

错误信息是:

不允许扩展(伪)指令或格式。请参阅设置。

0 投票
1 回答
1480 浏览

mips - MIPS 汇编语言,带有 MARS

新来的,新的组装。

我正在做我的第一个任务,看起来很简单,但我仍然缺乏对 MIPS 的理解。

我当前的问题是尝试阅读提示并打印整数。我必须在没有伪指令的情况下执行此操作(即 la、li、...),所以我只能使用 lui、add、addi、sw... 没有伪代码我会迷路,因为现在我必须调用字符串按地址,我猜是0x1001。我的另一个问题是如何移动到下一个地址?

tl;dr...必须能够计算函数 val3=$s0-$s1+$s2,其中 $s0=27、$s1=val1 和 $s2=val2 无伪指令。

这只是我的代码和英文帮助的开始部分(所以我可以理解 XD)将不胜感激)

0 投票
1 回答
1876 浏览

assembly - 为什么blt指令不起作用?Mars mips 组装

我试图打开一个包含联系人列表的文件,当我验证格式是否正确(姓名','号码)时,我使用 bgt 和 blt 指令来查看字符是否大于 z 或低于a,所以拒绝。但是当我这样做时,我的 blt 指令不起作用。当它执行跳转时执行标签,如果在我有一个值大于 blt 的 beq 之前,他会跳转到。

0 投票
0 回答
109 浏览

assembly - MIPS 中的矩阵

我正在尝试编写一个 MIPS 代码,要求用户为两个不同的 3x3 矩阵输入 9 个整数。输出应提供矩阵的乘积。我对 MIPS 非常陌生,所以任何关于我可能在代码中出错的地方的帮助都会非常有帮助!

到目前为止,该代码允许用户为两个矩阵输入 9 个整数,但它不提供任何输出。

0 投票
1 回答
3979 浏览

mips - How do I return a value from the main function in MIPS?

Say I want to write the following C program in MIPS:

When I try the following MIPS code in MARS:

I get a 'invalid program counter' error. This is apparently because you cannot jump out of the main function in MARS. So I tried rewriting it like so:

After executing this, the $v0 register contains the value 10, not 5. Which is understandable since I had to overwrite the $v0 register in order for syscall to work. My question, then, is where would I save the value 5 in order for it to be returned to the caller of this application correctly?

0 投票
2 回答
35912 浏览

assembly - MIPS 地址超出范围 (MARS)

我正在尝试编写一个简单的代码,将字符串和整数输入保存到一个数组中,然后打印它们(我稍后还会添加另一个对它们进行排序的部分,但我必须先让它工作)。

使用 MARS,我得到:第 75 行:0x004000e4 处的运行时异常:地址超出范围 0x00000008。该代码似乎读取正确,它打印了我输入的第一个整数,然后当它尝试打印第一个字符串时出现错误。我是 mips 的新手,所以代码可能真的很糟糕,而且我在处理数组时遇到了一些麻烦。我究竟做错了什么?

编辑:感谢迈克尔的回答,我明白我做错了什么,但看起来我不明白如何正确地做到这一点。我尝试添加此代码

在 read_string 之前,但我仍然得到同样的错误。我该怎么做?

0 投票
2 回答
16057 浏览

arrays - MIPS 中的整数数组:将数组 [index] 设置为迭代值 i?

我正在努力将下面的 C++ 代码翻译成 MIPS(这只是我坚持的程序的一小部分),并且我了解如何设置$t寄存器以获取给定的数组值的要点,但是我' m 完全卡在

我试过了swlw但是每次我尝试这些时,我都会得到地址超出范围的异常/等等。

有人可以向我解释这里出了什么问题吗?当循环到达时pos[count] = i,我需要为每次循环迭代pos[count]0xffffffffto更改。(i)出现错误是因为我需要调整 -1pos[]吗?

我完全迷失了,无法找到与这个问题足够相似的任何解释。

(对格式表示歉意,因为 MIPS 有很多标签行,所以在这里发布的格式非常古怪)


这是等效的 C++ 代码:

0 投票
1 回答
550 浏览

assembly - MIPS 程序集中无法通过谷歌搜索的错误

我正在使用 IDE Mars 在 R3000 MIPS 程序集中编写程序。这是我正在上的一门课。任务是编写一个函数,该函数遍历链表并删除任何值小于参数中给定整数的节点。我想我已经解决了问题,但是在测试过程中我一直遇到这个运行时异常:

开发人员:您必须使用 setStatement() 写入文本段!0x00000014

我一点也不知道是什么导致了这个错误。我试过用谷歌搜索它,但没有任何相关的东西出现。我什至不知道这是汇编代码还是 Mars IDE 的问题。真正奇怪的是,即使在相同的情况下,它似乎也不会一直出现。如果我有错误,有时我会更改代码(通常通过注释掉其中一个系统调用),运行它,如果我改回代码,它会消失并且不会回来。

这是我的函数代码。参数是链表中第一个节点的地址,以及删除节点的截止值,分别在 $a0 和 $a1 中。