-2

我被要求为以下问题提供解决方案;

1.A) 在 MIPS 汇编中,有很多方法可以将一个寄存器的内容复制到另一个寄存器,只使用一条指令。编写五个单独的指令,每个指令将内容复制$s0$s1. 您不能使用 MIPS 伪指令。

我已经制定了以下解决方案,但是我无法找到“标记”它们的方法,所以如果有“更简单”的方法或者您认为以下任何一个错误,请回复;

add $s1, $s0, $zero
addi $s1, $s0, 0
sub $s1, $s0, $zero
lw $s1, 0($s0)
and $s1, $s0, $zero

作为进一步的一点,我还有以下问题,这完全让我失望,主要是由于涉及到双 ^;

1.B)如果我们执行以下 grep 命令:

grep -E "^[^a][bc].*"

以下哪几行(在控制台上输入)将匹配?

abc
AbX
Zc
ZcHello
aBNo
bb
bDbc
bca
cba
bbbbb

任何帮助当然都非常感谢。

4

1 回答 1

1

5个中有4个对我来说看起来不错。

然而操作:

lw $s1, 0($s0)

不做你想做的事。X(REG) 语法执行间接寻址。假设 $s0 包含 1165。在这种情况下,lw $s1, 0($s0)将存储在内存地址 1165 的值放入 $s1。将存储在lw $s1, 4($s0)内存地址 1169 的值放入 $s0。

希望这很清楚。如果没有,您可以谷歌间接寻址,或询问,我会尝试更好地解释它。

如果您想测试 MIPS 代码,有一个出色的基于 java 的 MIPS 模拟器,可以让您“检查”cpu 的状态、逐步执行程序等:

http://courses.missouristate.edu/kenvollmar/mars/

不幸的是,我不是 grep 专家,所以我无法帮助你。与任何 UNIX 程序一样,请查看联机帮助页和帮助消息:

手册页:

man grep

帮助信息:

grep --help

希望这可以帮助!

于 2013-08-13T08:48:26.940 回答