问题标签 [spim]

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 投票
2 回答
133682 浏览

string - mips如何存储用户输入的字符串

我曾经以为我知道该怎么做。但后来我真的试着去做了。这是我编写的程序,但用于 mac 的 Berkeley S*** 模拟器说最后一行有语法错误。我做错了什么?

0 投票
1 回答
23415 浏览

string - 在 MIPS 程序集中反转字符串

我试图提示用户输入字符串的长度,为该字符串分配空间,然后反向打印出来。

对于我的生活,我无法弄清楚为什么这不起作用..

现在“字符串”的长度应该是 6 对吧?+ 应该使它成为空终止字符 7. 任何人都可以发现我的方法出错的地方吗?

0 投票
0 回答
1307 浏览

loops - MIPS while 循环错误

我在使用以下 mips 代码时遇到了一些问题:

我要做的是计算字符串中唯一小写字母的数量($t9 中的地址,$t8 中的长度)。在 SPIM 7.3 下运行时,我遇到的问题是我收到此错误:

变量是:

请注意,魔术常数 64 是堆栈顶部的标记值。

编辑:已解决。我将标签名称更改为更短,这似乎满足了 spim。不太确定根本问题是什么,但如果您遇到的问题似乎不应该存在,请更改为较短的标签

0 投票
0 回答
371 浏览

x86 - 类似于 SPIM 的实模式 x86 模拟器?

我正在寻找一个原理上类似于 MIPS32 模拟器"SPIM"的实模式 x86 模拟器。

理想情况下,它还支持 286 保护模式(32 位保护模式不太重要)。

有谁认识这样的野兽?

0 投票
1 回答
3134 浏览

assembly - 使用 SPIM 测量执行时间

我需要测量用汇编语言编写的 Hanoi Towers 程序的执行时间。是否有用于执行此任务的任何功能或特定寄存器值..?

0 投票
3 回答
4993 浏览

assembly - 用 MIPS 汇编语言理解递归

我在课堂上,我们已经/正在介绍汇编语言中的递归。我觉得我理解了递归,但是越多人试图向我解释它,我就越觉得离它越远。

无论如何,我们的最后一张幻灯片有一个函数(用 C 语言?),老师说他会在课堂上介绍它,但呼吁我们学生在黑板上展示课堂的其余部分。我觉得他一直在看着我,我害怕看起来很愚蠢。

你们能帮我用 MIPS 编写这段代码并帮助我理解吗?IDK 如果这太难了

用 MIPS 汇编语言编写找到 fix(i,x),其中 fix(i, x) 递归定义为:

谢谢你们,我明天就要上课了,我还是希望他不要来找我;但我想真正了解这种材料。

注意:这将是一个附有 0 学分的课堂练习。我觉得班上的每个人都已经知道如何做到这一点。

0 投票
4 回答
2807 浏览

c - SPIM (MIPS Simulator) 无法解析以下语句 lui $2,%hi($LC0)

我们正在开发一个 C 到 MIPS 交叉编译器,为此我们需要将我们的 MIPS 代码与其他 C 到 MIPS 交叉编译器(如 LLVM 或 CodeSourcery 等)生成的代码进行比较。我们正在使用 SPIM 来运行我们的 MIPS 代码。

现在我们正在使用 CodeSourcery 交叉编译器为给定的 C 程序生成相应的 MIPS 代码。它会生成像 lui $2,%hi($LC0) , lw $3,%lo($LC0)($2) 这样的语句,其中 LCO 是一个标签,但同时在 SPIM 中加载该文件。它显示解析器错误,如

我不知道这种语句的等效MIPS代码是什么,以便可以被SPIM解析?

0 投票
1 回答
7375 浏览

memory-management - mips 内存管理

您如何手动管理 mips 程序集中的堆,特别是 SPIM 模拟器?

使用 sbrk 系统调用时,我发现堆从 0x10040000 开始,例如

li $t0, 1

li $s0, 9

syscall

sw $t0, ($s0) # 1 located at 0x10040000

那么,调用 sbrk 是否不能保证您将取回下一个空闲内存插槽?例如,如果我为单个 4 字节空间调用 sbrk,SPIM 可能会分配地址:0x10040000-0x10040003。但是,第二次调用另一个 4 字节空间可能与之前的 4 字节分配无关?因此,需要一个数据结构来跟踪哪些内存插槽已被分配?最后,内存管理器是否尝试通过确定特定数据结构跟踪的地址之间的空闲空间来减少对 sbrk 的调用次数?

0 投票
1 回答
721 浏览

assembly - 指定 MARS 输入文件

我正在 MARS 中测试一个 MIPS 汇编程序,并且想指定一个文件在执行期间作为输入(有点像我可以通过使用以下 UNIX 命令重定向标准输入来完成):

spim -file [文件名].s < [input_file]

有没有办法在 MARS 中完成这样的事情?这是一个家庭作业,我仅限于标准 MIPS 系统调用,所以我不能使用 MARS 的扩展文件操作集。

我也愿意接受其他方法(在任何 MIPS 模拟器中)。我只需要一种方法来逐步执行程序并在它运行时进行调试。上面的 MIPS 解决方案一直运行到它完成或抛出异常,此时我无法后退或检查内存内容。

任何建议将不胜感激!

0 投票
0 回答
354 浏览

audio - 在 QtSpim 中生成声音的程序集

我和我的朋友们正在考虑尝试用汇编语言编写音乐作曲引擎。我们的课程要求我们使用 QtSpim,并且想知道如何生成声音。在 MARS 中,Assembly 可以通过系统调用访问声卡:http: //courses.missouristate.edu/KenVollmar/MARS/Help/SyscallHelp.html

但在 QtSpim 中,系统调用无法识别。