问题标签 [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.
mips - 我的以下代码正确吗?
命令是否正确并带有相应的注释?我无法理解 mips 汇编语言,例如“大小”、“数组”和“结果”的含义,以及我应该如何将它们合并到我的代码中。
assembly - 为什么这个 MIPS 汇编语言代码会使我的 SPIM 模拟器崩溃?
如果评论不太清楚,我将描述这应该做什么。取两个长度为 8 的数组并将每个对应的元素相乘并将乘积存储到一个新数组中。换句话说,对于数组 1 [1,2,...,8] 和数组 2 [1,2,...,8],数组 3 的内容将等于 [1,4,...,64]。
string - MIPS 程序集:立即值对于字段错误来说太大
在尝试存储用户输入的字符串时,对于项目的一部分,当我简单地加载文件时,我在 spim 中收到以下错误:
立即数对于字段来说太大:[0x0040009c]
下面是我的代码:
现在,当我运行它时,我得到了上面提到的错误。但是,我不太清楚为什么。可能是因为字符串是 32 位的?任何关于为什么的解释将不胜感激。再次感谢!
arrays - 使用 .space 在 MIPS 中循环
我正在尝试创建一个循环,将用户输入的整数添加到数组中,直到它填满数组。每次我输入一个值时,QTSPIM 都会输出 268501016,我认为这是存储在寄存器中的一些随机值。
为了测试我的程序是否正在执行整个循环,当程序到达我的 beq 的分支部分时,我添加了一个对 ascii 行的调用。即使值不相等(至少在我的理解中),该程序似乎也在分支。
我唯一能想到的是我的跳转调用不会回到loop1,但如果是这种情况,我不知道如何解决这个问题。
这是 32 位 MIPS 代码。
assembly - Xspim 模拟器:使用 mtc1 传输整数
将整数 9 传输到协处理器的代码,获取其平方根的上限,然后将该值传回并打印出来:
注意带有 (*) 的行: (1) 我也尝试使用 .d 而不是 .s;(2) 我还尝试使源寄存器和目标寄存器不同($f0
to$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
- 顺序rd
和rs
应该如上。
integer - 在 mips 中读取和打印整数
我的程序假设读取一个整数并将其打印回用户,但每次它只打印 268501230 无论输入什么。任何帮助,将不胜感激。
assembly - 在 MIPS 中读取和写入字符串
我正在尝试编写一个简单地读取字符串的代码,该字符串会在屏幕上打印该字符串。这是我写的代码:
我收到此错误: spim: (parser) Label is defined for the second time on line 2 of file code.s main : ^ 我该如何解决这个问题?谢谢。
c - 从 C 循环转换为 MIPS 汇编语言(错误地址错误)
我正在编写一个简单的 MIPS 汇编代码,它遍历字符串的字符
并找到给定子字符串的实例..
一、c代码:
这是我的 MIPS 代码的一部分。
但是,当我运行这段代码时,我得到了这个坏的无限循环
地址错误:
我意识到错误的地址错误来自第 3 行和第 5 行
j_body(加载字节指令)。我已经初始化了字符串地址,所以我不确定这是为什么
发生...
以下是我的问题:
为什么我得到这个无限循环?(我以为我已经正确实现了 i 和 j 的 for 循环)
为什么我收到错误的地址错误?
谢谢 :)
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.
assembly - SPIM - 寄存器/内存值是否保留到 SPIM 重新初始化?
所以我正在上交一个课程项目,项目的两个部分都可以工作。
但是我注意到:
如果我加载程序 ( load "p5a.mal"
),然后用 执行它run
,它就可以工作。
如果我run
第二次输入,输入相同的输入,它显示的行为表明声明的变量.text
保留了上次运行的值。
可以在此处看到声明变量的示例:
例如,如果wordcount
在上一次运行中为 10,则在第二次运行中输出 20。
这是 SPIM 的标准行为吗?还是我没有正确地将变量归零?
我知道 SPIM 有“重新初始化”命令,但是第二次运行是否应该正常工作(不输入“重新初始化”)?