问题标签 [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.
c++ - lw 在 C 或 C++ 中如何表示?
因此,例如,会是这样的:
lw $t1, 0($t0)
或者
lw $t2, 8($t0)
翻译成 C 或 C++?我的意思是我正在将地址中的一个单词加载到寄存器中,我明白了。数组是一个类似的概念,还是什么?
提前致谢。
assembly - MIPS 系统调用和 $t 寄存器
MIPS 寄存器有一个约定 - $s 寄存器将在子程序调用中保留,因此如果您的子程序修改它们,它应该将它们保存到堆栈中,而 $t 寄存器不保留。
现在,系统调用可以修改 $t 寄存器吗?在我拥有的模拟器中,它没有,但真机是否可以更改 $t 寄存器?我问是因为我想知道假设 $t 寄存器在系统调用中保持不变是否安全。
assembly - 如何将浮点寄存器的值移动到 MIPS 中的通用寄存器?
我有以下 MIPS 程序集,在MARS模拟器上运行,如下所示:
此时,我需要的浮点值在$f0
,但我需要将值移动到x
。如果我可以将浮点寄存器的内容传输$f0
到$t0
,我将能够做到这一点。这可能吗?如果没有,解决方法是什么?
assembly - 打印 MIPS Int 数组的有效方法
我正在做一项家庭作业,将我们编写的 C 程序翻译成 MIPS。我的问题是关于一般 MIPS 编码而不是项目具体问题。我遇到了打印输出的问题。我有一个数组和输出字符串声明如下:
我正在尝试输出数据,因此我具有以下格式:
我们的数组是硬编码的,我们的数组长度是预先确定的。我试图想出一个循环来有效地打印出来,但是lw
使用寄存器处理偏移是一个问题。
我想出了以下代码来硬编码我的输出,但我还有另一个数组需要打印,这似乎占用了很多空间。我的代码功能齐全,但只是一团糟!谁能给我一些清理/重构它的提示?
数组存储在 中$a0/$s0
,数组大小存储在$a1/$s1
这是一个家庭作业项目,我真的很想完全了解一种更简洁的打印数组的方法,我不想抄袭。非常感谢编写循环的提示,我不是在找人给我代码。
linux - 如何编译 mips gnu?
我什至不确定我的主题标题是否正确。这是我的故事。我访问了西数网站以检查 wdtv live 的新固件。我发现可以下载 wdtv live OS 的源代码。我在http://support.wdc.com/product/download.asp?groupid=1003&lang=en上下载了“WDTV GPL 代码” 。我提取了它,然后......想出了
我用谷歌搜索了这两个档案,我猜“mips-4.3.tgz”是操作系统,“linux_kernel_2.6.22.19-19.tgz”显然是 linux 内核。
据我了解,我需要有一个正在运行的 linux 才能编译 linux 内核。所以我假设我必须以某种方式安装 mips-4.3.tgz。
有谁知道如何安装mips?
assembly - 分支到标签
我正在为一个简单的计算器编写 MIPS 代码,并且想知道如何根据用户输入分支到相应的函数。例如,如果用户希望将两个数字相加,您如何确保计算器跳转到加法标签,而不是可能的乘法或减法?
assembly - MIPS 汇编中的整数问题
如果我提示用户输入一个整数,则使用 MIPS 程序集,然后我如何获取该整数并将其分解为必要的部分?
例子:
然后我将 $v0 中的值存储在一个临时寄存器中,比如 $t0,并且需要将它分解为组成它的每个部分。因此,必须将 308 分解为:3、0 和 8。我需要这样做,以便我可以将这些部分中的每一个平方并将它们相加。
来自用户的输入值必须以整数形式输入。
谢谢,核磁共振
assembly - MIPS程序!需要帮助-我不确定我是否做得对
我正在尝试编写一个 MIPS 程序,该程序将检查可以从终端输入的十个单个数字(正数、零或负数)的集合。检查数字后,只需将负数(带有适当符号)及其计数输出到终端。
下面是我的 MIPS 程序
assembly - MIPS 组装作业 帮助!
我最亲密的朋友正在上一门 EE 课程(我是他最后的希望:/),我大约 7 年前就了解 Java,但他的(大纲)最新的 EE 编程任务是使用 MIPS 程序集执行以下操作:
编写一个程序,接受两个正整数(m 和 n)并计算:
两个整数都应该大于零。我不允许使用任何 R 型算术指令(add、mult、sub)。相反,我要使用其他指令为其功能编写代码????“您的程序应该在每次计算后继续获取 m 和 n 的新值,直到用户输入零,这将是您的程序的结束。”
我无权访问他以前的任何作业,并且尝试在不使用 (add, mult, sub) 的情况下一头扎进汇编语言对我来说效果不佳。
ece.ucdavis.edu/~vojin/CLASSES/EEC70/W2001/pr4.pdf 教授似乎正在使用他在加州大学戴维斯分校任教时的 ols 作业。
//edit 这是问题的 c++ 版本,它没有涵盖所有赋值的基础,但它是一个起点:
输入.s
c++ - C++ CPU 寄存器使用
在 C++ 中,局部变量总是分配在堆栈上。堆栈是您的应用程序可以占用的允许内存的一部分。该内存保留在您的 RAM 中(如果没有换出到磁盘)。现在,C++ 编译器是否总是创建将局部变量存储在堆栈上的汇编代码?
以下面的简单代码为例:
在 MIPS 汇编代码中,可能如下所示:
如您所见,我根本不需要为 n 使用堆栈。C++ 编译器会认识到这一点,并直接使用 CPU 的寄存器吗?
编辑:哇,非常感谢您几乎立即和广泛的回答!foo 的函数体当然应该是return ++n;
,不是return n++;
。:)