问题标签 [mips64]

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 投票
0 回答
44 浏览

assembly - 如何扩展伪代码

我怎样才能转换

进入luiori?我使用 MARS 汇编器,我尝试过:

但他们没有工作。

0 投票
0 回答
54 浏览

assembly - 不使用加载字指令写入加载字

我想写

不使用 lw,在火星上我试过

并且

但他们不工作我该怎么做

0 投票
1 回答
6217 浏览

assembly - 存储字,加载字和移动之间的区别

我是 mips 程序集的新手。我不知道这些指令到底是做什么的,所以我尝试对其进行测试。这是用于切换寄存器 t0 和 t1 值的代码。

代码看起来很合理,将它们的值存储在 t3 和 t4 中,然后交换它们。我在这里无法理解的是为什么我们不能在这里使用移动或加载字而不是存储字?例如为什么代码不能这样?

或者像这样

0 投票
1 回答
582 浏览

assembly - 返回调用函数 MIPS 程序集

我刚刚开始学习 MIPS 汇编,但我不知道如何有条件地返回caller程序。一个例子将使我的问题更清楚。我有一个程序caller,它在调用之前做了一些事情multiply,我希望这个程序在完成other things后执行multiply。我知道如何使用条件跳转到标签,但beq $t3, 80, caller我不想返回到caller,就在jal multiply. 我知道,要返回你必须使用jr $ra,但我可以使用条件调用它吗?

程序集的行为应该像这样的 C 代码:

0 投票
0 回答
63 浏览

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

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

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

这是我的字符串交换码

交换:

0 投票
0 回答
73 浏览

assembly - MIPS 将 $a0 中的字符转换为大写

我正在尝试将单个字符从小写转换为大写。但看起来,什么都没有发生:

我尝试了许多不同的解决方案。我认为我的问题是获取 $a0 中的内容,以便之后可以正确使用它。

0 投票
1 回答
1073 浏览

assembly - MIPS:关于加载/存储词库 + 偏移量的说明

我目前正在学习 MIPS,并希望对存储/加载字进行一些说明。

是:

一样

此外,我了解偏移量是 16 位有符号立即数。但是,如果它比 32 位立即数更大呢?

例子

0 投票
1 回答
241 浏览

assembly - 为什么分支目标缓冲区会影响函数调用的返回?[WinMIPS64]

我正在为大学写一些 MIPS 代码,看看函数中的函数是如何工作的,一开始一切都很好。我正在使用WinMIP64 模拟器

然后,在我打开 BTB 之后,一切都崩溃了(它在第二个函数中陷入了无限循环)。

我快疯了,直到意识到这是因为 BTB(其中一个函数中有 ab,我想减少一些因此出现的 Branch Taken Stalls)。当我关掉它时,一切都恢复正常了。

我在下面包含了一些代码。

为什么会这样?对函数的调用是否对缓冲区有某种影响(我认为它只是用于分支)?如果我打开 BTB,是否可以在函数中调用函数并且没有问题?如果我想在函数中使用 BTB 和函数调用,我需要更改什么?

这不在我们的计划中,所以我在这里问。

0 投票
0 回答
400 浏览

c++ - 由于 strlen() 导致分段错误

我的应用程序随机崩溃,下面的回溯没有得到任何可能导致分段的线索。如果需要,我也会发布代码。

回溯:

c++filt 输出:

根据崩溃分析调用的代码片段:

详细的 StackTrace:

我已经发布了地址的代码,[10979efc]但正如您从代码片段中看到的那样,没有任何线索。

0 投票
0 回答
995 浏览

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

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



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



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

非常感谢!