问题标签 [mips]

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 回答
6702 浏览

mips - MIPS:从字符串中删除非字母数字字符

我正在用 MIPS 编写一个程序,该程序将确定用户输入的字符串是否是回文。它有三个正在构建的子程序。
这是主要的代码块,带有相关信息的子例程:

首先,它应该事先从字符串中删除所有非字母数字字符,但是当它遇到指定要删除的字符时,之后的所有字符都会被删除。

其次,它应该将所有小写字符转换为大写。

最后一个检查字符串是否为回文的子例程目前还没有完成。我无法找到字符串的结尾,因为我不确定 PC-SPIM 使用什么作为回车符。

任何帮助表示赞赏,我觉得我的大部分问题都是由愚蠢和愚蠢的事情引起的,所以请随时指出任何事情,无论多么小。

0 投票
1 回答
1745 浏览

mips - 为什么我的 MIPS 交叉编译器在 NOT 操作时会这样工作?

我设置了我的交叉编译器来制作 MIPS 指令。

它可以很好地编译 C 代码。

但我发现 NOT 操作很奇怪。

如果我像这样编写代码

我用教科书研究了 MIPS 指令,上面写着“MIPS 将 NOT 操作转换为‘也不为零’”

所以我认为它会转换为

但我的编译器转换

////////////////////////////////我用'myaccount>> mipsel-编译了代码unknown-linux-gnu-gcc -S myfilename.c' 它使 myfilename.s 文件..

我错过了什么?

0 投票
3 回答
912 浏览

profiler - 嵌入式分析器

我应该分析/优化应用程序。我在 mips 机器上运行,所以 valgrind 不是一个选项。任何工具建议,策略?

编辑:我想我应该提供更多细节。我的工具链不支持 Gprof。我试过oprofile;但结果似乎不正确,我也无法获得调用树。我正在寻找替代方案。

0 投票
1 回答
11890 浏览

assembly - 从 MIPS 程序集中的用户输入中读取文件名

我正在编写一个 MIPS 汇编代码,它会询问用户文件名,它会产生一些关于文件内容的统计信息。

但是,当我从一开始就将文件名硬编码到变量中时,它工作得很好,但是当我要求用户输入文件名时,它就不起作用了。

经过一些调试,我发现程序在内存中用户输入的末尾添加了 0x00 char 和 0x0a char(检查 asciitable.com),这就是它不根据用户输入打开文件的原因。

任何人都知道如何摆脱那些额外的字符,或者在从用户那里获得文件名后如何打开文件?

这是我的完整代码(除了来自用户事物的文件名外,它工作正常,任何人都可以自由地将它用于他/她想要的任何目的):

注意:我正在使用 MARS 模拟器,如果这有什么不同的话

更新:我已经通过编写和调用以下过程解决了这个问题:

p>

0 投票
1 回答
14481 浏览

mips - 如何在 MIPS 中获取 LSB 位?

在 MIPS 中,是否有一种简短的方法可以检查/获取 32 位整数中的最低有效位?它显然是为奇数设置的,并且检查整数是奇数还是偶数的算法可以决定这一点。但我只是想知道有没有更好的方法来做到这一点......

0 投票
1 回答
660 浏览

assembly - 如何通过用 1 填充 MSB 来移动二进制数?

在 MIPS 中,有没有办法通过每次用 1(1000 和下一次 1100 和下一次 1110 依此类推......)填充其 MSB 来移动二进制数(0000)?

0 投票
3 回答
6768 浏览

assembly - 在 MIPS 汇编中,如果浮点寄存器中有浮点值 X.YZDEF,如何截断到小数点后两位?

如果我在 MIPS 的“f”寄存器中有一个值,我如何将它从 X.YZDEF 截断为 X.YZ?据说,您必须将浮点数转换为两个整数并显示它们……这是怎么做到的?

0 投票
2 回答
38706 浏览

c - MIPS(或 SPIM):加载浮点数

我正在研究一个小型迷你编译器,同时尝试在这里学习一些 MIPS。这是我的问题:

MIPS 有一个指令 li (立即加载),它可以像这样工作

这会将 100 加载到寄存器 5 中。

但是,我现在需要将浮点数加载到寄存器中,并且正在努力寻找一种方法来做到这一点......因为 li $5,2.5 不起作用。

有人有什么建议吗?

我在 C 中工作,我在想我可以以某种方式获得我正在使用的浮点的整数表示(即浮点二进制表示 == ints 二进制表示)然后将“整数”加载到寄存器中并像对待它一样从此浮出水面。

也许为时已晚,但我现在卡住了。

0 投票
1 回答
132 浏览

assembly - 关于 MIPS 跳转的问题

PCGPRLEN-1..28 在这里是什么意思?这 4 位从何而来?

替代文字 http://img208.imageshack.us/img208/3750/jumpv.jpg

0 投票
1 回答
4706 浏览

mips - 确定 MIPS 中数字的位表示的奇偶校验

MIPS 中是否有一些指令可以确定某个位表示的奇偶校验?我知道确定“数字”是否具有偶校验或奇校验是将二进制表示的各个位异或在一起,但这对于一组 MIPS 指令来说似乎是计算密集型的......我需要这样做尽可能快。

此外,我正在使用的数字以格雷码表示……只是为了把它扔在那里。那么 MIPS 中是否有一些伪指令来确定“数字”的奇偶性,还是我必须手动完成?

如果没有 MIPS 指令(这似乎不太可能),关于如何手动操作的任何建议?

谢谢, 赫里斯托

跟进:我找到了一个优化,但我的实现不起作用。