问题标签 [smips]

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 投票
3 回答
612 浏览

assembly - MIPS汇编中2个二进制数之间的位差

所以我必须创建一个 MIPS 汇编程序,从 2 个寄存器($s0 和 $s1)中读取 2 个数字,并计算这 2 个数字不同的位数。并将结果存储在 $s2 寄存器中。我还必须用尽可能少的命令来完成上述所有操作。我在纸上用异或运算尝试了一些东西,但我不太清楚如何计算不同位的数量。

如果有人可以提供帮助,我们非常欢迎您。提前致谢

0 投票
0 回答
63 浏览

mips - 试图在 mips 的链表中工作 strcpy

所以我创建了一个链表,其中每个节点为 72 个字节,前 64 个字节为字符串,接下来 4 个字节为整数,最后 4 个为地址,其中数字按排序顺序排列。前 64 个字节是为字符串保留的,现在我正在尝试对字符串进行排序。

我使用 $a0,0($t0) 来打印字符串。我非常困惑如何交换节点的字符串部分的内容

这是我的字符串交换码

交换:

0 投票
1 回答
311 浏览

cpu-architecture - 如何为向量乘法编写 MIPS 代码

定义向量mul(vector v, float t)。它通过将向量乘以 t 返回一个向量。

如果a=4i+3j+12kthenmul(a,0.5)将返回2i+1.5j+6k

这是我写的代码:

当我在 SPIM 模拟器上运行它时,寄存器不会产生任何值。我的代码是错误的还是我需要添加一些东西?

0 投票
1 回答
835 浏览

recursion - 在 mips 程序集中查找数组中元素的总和(使用递归)

所以,这是我需要转换为 mips 程序集的 c++ 代码。

这是我的尝试:

因此,我在递归调用中保留了 3 个变量:ra、a0 和 a1。但是当我尝试访问数组的内存时,可能出现了错误读取的异常。但我找不到问题。

0 投票
0 回答
146 浏览

mips - MIPS 汇编文件写入

我正在尝试写入 MIPS 程序集中的文件,但似乎无法正常工作。代码很简单,但无论我输入什么,$v0寄存器都会返回。-1我已经尝试过其他人的代码,但最终还是得到了相同的结果。

编码:

输出:

Mars 目录的屏幕截图。注意:我知道目录包含“FILES.txt”而不是“file.txt”。但是,我正在尝试创建一个新文件。

编辑:

一段时间后,我运行程序并解决了这个问题。由于某种原因,我今天运行第一个系统调用时没有返回-1,但问题是在“jal print”中$v0更改了它的值,这意味着它后面的行,write_to_file 标签的第一行,加载了不正确的描述符到$a0. 另一个潜在的问题是我打印了 20 个字符而不是 19 个字符。

长话短说,我已经保存了文件描述符$s0并放入了 19 个要写入的字符,现在程序可以运行了。

0 投票
0 回答
995 浏览

mips - 了解字符串如何存储在 MIPS 中以及如何计算字符串中的字符数

我是 MIPS 的初学者。据我了解,字符串是在 MIPS 中使用指令 .asciiz 存储的,并且字符串中的每个字符都存储在一个字节中。为了在 MIPS 程序中获取特定的字符代码(十进制),我将不得不使用 lb(加载字节)指令,并指定字符串的字节位置以获取存储在该字节中的字符十进制。



如果我需要一个程序来计算字符串中的字符数,则使用 addi 指令,我似乎没有得到它,如下面的程序所示:



我假设“addi $t0, $t0, 1”会将 $t0 的地址从 268500992 增加到 268500993。这是否意味着地址增加 1 可以让我找到字符串中的下一个字符,并且地址中 1 的增量等于包含字符串的地址中一个字节的增量?

非常感谢!

0 投票
1 回答
457 浏览

mips - Mips:返回错误的退货地址

我编写了一个迷你银行程序,它调用子路由存款中的多个函数,这是子程序

ascii 转换子程序:

当我进入存款时,我 jal AsciiConvert 然后进入 deposit_Checking 子程序,但是该 deposit_Checking 的返回地址将我返回到 jal AsciiConvert 的行,而不是我调用 deposit_Checking 子程序的行,导致无限Ascii 转换子程序和 deposit_Checking 子程序之间的循环......有人可以帮我吗?

0 投票
0 回答
35 浏览

mips - 在五位 MIPS 处理器中乘以 MIPS (00011 x 0110)

我真的很感谢我的教授在这项任务上的帮助。这就是他发给我们的全部内容,我们需要给他发一份 pdf 文件,我不知道该怎么做。