问题标签 [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 投票
1 回答
72 浏览

mips - 我的以下代码正确吗?

命令是否正确并带有相应的注释?我无法理解 mips 汇编语言,例如“大小”、“数组”和“结果”的含义,以及我应该如何将它们合并到我的代码中。

0 投票
1 回答
1990 浏览

assembly - 为什么这个 MIPS 汇编语言代码会使我的 SPIM 模拟器崩溃?

如果评论不太清楚,我将描述这应该做什么。取两个长度为 8 的数组并将每个对应的元素相乘并将乘积存储到一个新数组中。换句话说,对于数组 1 [1,2,...,8] 和数组 2 [1,2,...,8],数组 3 的内容将等于 [1,4,...,64]。

0 投票
1 回答
1176 浏览

string - MIPS 程序集:立即值对于字段错误来说太大

在尝试存储用户输入的字符串时,对于项目的一部分,当我简单地加载文件时,我在 spim 中收到以下错误:

立即数对于字段来说太大:[0x0040009c]

下面是我的代码:

现在,当我运行它时,我得到了上面提到的错误。但是,我不太清楚为什么。可能是因为字符串是 32 位的?任何关于为什么的解释将不胜感激。再次感谢!

0 投票
1 回答
3201 浏览

arrays - 使用 .space 在 MIPS 中循环

我正在尝试创建一个循环,将用户输入的整数添加到数组中,直到它填满数组。每次我输入一个值时,QTSPIM 都会输出 268501016,我认为这是存储在寄存器中的一些随机值。

为了测试我的程序是否正在执行整个循环,当程序到达我的 beq 的分支部分时,我添加了一个对 ascii 行的调用。即使值不相等(至少在我的理解中),该程序似乎也在分支。

我唯一能想到的是我的跳转调用不会回到loop1,但如果是这种情况,我不知道如何解决这个问题。

这是 32 位 MIPS 代码。

0 投票
1 回答
324 浏览

assembly - Xspim 模拟器:使用 mtc1 传输整数

将整数 9 传输到协处理器的代码,获取其平方根的上限,然后将该值传回并打印出来:

注意带有 (*) 的行: (1) 我也尝试使用 .d 而不是 .s;(2) 我还尝试使源寄存器和目标寄存器不同($f0to$f2和 back)。 

我的结果是 1(如果我发言,则为 0)。但是,如果我将 *-ed 行注释掉,则 9 会来回传输:打印 9。 

我在传输之后(以及在传输回 CPU 之前)添加了一个系统调用“print_double”(=3)来打印传输的数字,并且打印了一个非常小的正数。 

我的问题: 

(a) 发生了什么事?

(b) mtc1:从 CPU 传输的整数是作为双精度还是单精度接收?在用 发送回来之前mfc1,它需要是单的还是双的,还是没关系?(我尝试使用cvt.d.s等,但无济于事)

备注:我使用“计算机组织和设计”(Patterson,Hennessy)来做这件事是为了好玩。第 4 版在附录 B.10 中有错误的语法mtc1- 顺序rdrs应该如上。

0 投票
2 回答
111025 浏览

integer - 在 mips 中读取和打印整数

我的程序假设读取一个整数并将其打印回用户,但每次它只打印 268501230 无论输入什么。任何帮助,将不胜感激。

0 投票
0 回答
5869 浏览

assembly - 在 MIPS 中读取和写入字符串

我正在尝试编写一个简单地读取字符串的代码,该字符串会在屏幕上打印该字符串。这是我写的代码:

我收到此错误: spim: (parser) Label is defined for the second time on line 2 of file code.s main : ^ 我该如何解决这个问题?谢谢。

0 投票
2 回答
1096 浏览

c - 从 C 循环转换为 MIPS 汇编语言(错误地址错误)

我正在编写一个简单的 MIPS 汇编代码,它遍历字符串的字符

并找到给定子字符串的实例..

一、c代码:


这是我的 MIPS 代码的一部分。


但是,当我运行这段代码时,我得到了这个坏的无限循环

地址错误:



我意识到错误的地址错误来自第 3 行和第 5 行

j_body(加载字节指令)。我已经初始化了字符串地址,所以我不确定这是为什么

发生...

以下是我的问题:

  1. 为什么我得到这个无限循环?(我以为我已经正确实现了 i 和 j 的 for 循环)

  2. 为什么我收到错误的地址错误?

谢谢 :)

0 投票
1 回答
322 浏览

assembly - Mips exception at PC

Currently trying to develop a mips program for generating a math sequence. However, i keep getting a Mips exception at PC.

0 投票
1 回答
75 浏览

assembly - SPIM - 寄存器/内存值是否保留到 SPIM 重新初始化?

所以我正在上交一个课程项目,项目的两个部分都可以工作。

但是我注意到:

如果我加载程序 ( load "p5a.mal"),然后用 执行它run,它就可以工作。

如果我run第二次输入,输入相同的输入,它显示的行为表明声明的变量.text保留了上次运行的值。

可以在此处看到声明变量的示例:

例如,如果wordcount在上一次运行中为 10,则在第二次运行中输出 20。

这是 SPIM 的标准行为吗?还是我没有正确地将变量归零?

我知道 SPIM 有“重新初始化”命令,但是第二次运行是否应该正常工作(不输入“重新初始化”)