问题标签 [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 投票
4 回答
4098 浏览

tree - 关于树和前缀(波兰语)表示法?

我的 MIPS 汇编课程要求我将未知大小的表达式读入解析树。我从来不用处理树,所以这就是我存储值的方式:

假设用户输入了表达式 1 + 3 - 4(每个操作数只能是数字 1-9)

我最左边的子节点将是起点并包含 2 条数据

这就是我构建树的方式。我会从操作数指向运算符,再指向下一个操作数,再指向下一个运算符,直到没有更多值要读入。

我的下一个任务是递归地遍历树并以中缀/前缀/后缀表示法输出值。

考虑到我是如何构建树的,中缀遍历没有问题。

我被困在前缀上。首先,我并不完全理解它。

当我在前缀中输出我们的表达式 (1 + 3 - 4) 时,它应该出现 - + 1 3 4 吗?我无法按照在线示例进行操作。

您还认为我的树构造正确吗?我的意思是,我无法从当前节点转到前一个节点,这意味着我总是必须从最左边的子节点开始遍历,尽管我的 TA 说这是要走的路,但本能地听起来并不正确。

感谢您的任何帮助。

0 投票
7 回答
1676 浏览

mips - 学习 MIPS 作为第二种汇编语言?

我知道 x86 汇编(并且使用过 FPGA 等),从未为 RISC 写过文章,我有机会参加 MIPS 课程,但我现在很忙,所以我的问题是,我知道每一件事我知道在某种程度上是有益的,但实际上,有多少有益?(我是低级热心,但这是必须的吗?)

(我知道mips-is-it-important,但我觉得我的情况略有不同,因为我已经知道某种组装)

谢谢。

0 投票
4 回答
2805 浏览

c++ - C++ int 操作在 mips 架构上是原子的吗

我想知道我是否可以在不锁定 mips cpu(尤其是亚马逊或多瑙河)的情况下读取或写入共享 int 值。我的意思是如果这样的读取或写入是原子的(其他线程不能中断它们)。需要明确的是 - 我不想阻止线程之间的竞争,但我关心 int 值本身是否没有损坏。

假设编译器在 cpu 字的边界对齐所有 int,应该是可能的。我使用 gcc (g++)。测试还表明它似乎工作正常。但也许有人肯定知道?

0 投票
1 回答
1402 浏览

string - MIPS 组装中的 Pig Latin

在我的 MIP 汇编编程课程中,我的任务是编写一个将字符串转换为简化的拉丁语的程序。

简化的猪拉丁语假设字符串中的所有单词至少有 2 个字符长,并且每个单词的第一个字母都移到末尾,然后是“ay”。另外,假设没有任何类型的标点符号。

因此,“stackoverflow 很棒”变成了“tackoverfloway siay reatgay”。

我已经对这个程序进行了尝试,我几乎完成了。它工作正常,除了由于某种原因我每次在最后一个单词的中间都有一个换行符。

例如:

tackoverflowsay siay reat
gay

代替:

tackoverflowsay siay reatgay

我已经尝试在程序的最后一个退出部分确定是什么导致了这个换行符,但我没有看到它。我有一个过早的空终止字符串吗?如果我这样做,我看不到它。

这是我的代码:

0 投票
1 回答
2948 浏览

assembly - 是否可以将 MIPS 寄存器名称与 GAS(GNU 汇编器)一起使用?

如果我使用寄存器名称,我会得到:

如果我使用注册号($8而不是$t0$0而不是$zero)它可以工作。(我使用的是 binutils 2.17)。

0 投票
2 回答
7866 浏览

loops - MIPS 代码损坏

我正在为我的计算机组织课程编写一些 MIPS 代码,而且我似乎无法让 MIPS 正常工作,而且在线上没有那么多 MIPS 资源。我在 PCSPIM 上运行代码。该代码应该将 10 添加到 array2 的内容并将它们存储在 array1 中,然后打印 array 1。重新编写的代码现在可以正常工作。

PCSPIM 打印 0 5 次并返回 Exception 7 [Bad data Address] 发生并被忽略

0 投票
1 回答
4069 浏览

gcc - gnu 汇编器指令的文档

我现在正在尝试学习 mips 组装。为此,我写了一个非常简单的c程序......

...并在 mips 机器上使用 gcc 的 -S 选项编译它以生成汇编代码。下面是 main 函数的开头部分:

然后,我试图通过查看gas的文档来弄清楚这一切意味着什么,但我在那里找不到任何这些指令。那么它们是什么意思呢?我在哪里可以找到更多信息?

0 投票
3 回答
19559 浏览

assembly - 如何访问 MIPS 中单词的各个位的状态?

我正在编写一个程序,我需要确定是否设置了第 3 位和第 6 位。我知道我可以旋转一个单词或左/右移动它。

但是我如何访问单个位的状态?我是否使用像 and/xor 这样的按位运算符?

0 投票
4 回答
35319 浏览

assembly - 我的 MIPS 程序是否正确?

编写一个 MIPS 程序,生成从 1 到 100 的所有偶数并将其相加。

  • 它必须至少有一个循环
  • 它应该将总和存储在寄存器 R12 中

这就是我写的:

这个对吗?

0 投票
3 回答
1427 浏览

mono - 有人使用 uClibc 为 MIPS 64 交叉编译 Mono 吗?

我正在尝试为 MIPS 静态交叉编译 Mono。我能够编译 Mono,但它总是与它的依赖项动态链接,即使我为编译器指定了静态。

我写了一个测试程序,我可以用我的工具链静态编译它并在目标平台上运行它。我不确定我是否遗漏了某些东西,或者这是不可能的。我使用buildroot构建了我的工具链。

编辑

为了让事情更清楚一点,我想用它的依赖项静态编译单声道。mono 依赖的依赖项是:GLib、pkg-config 和 gettext。我相信 GLib 是一个直接依赖项,而 GLib 依赖于 pkg-config 和 gettext。

如果需要,我可以发布我的环境变量和配置命令。