【发布时间】:2015-08-13 02:20:53
【问题描述】:
我在理解如何将指令转换为 MIP 程序集方面遇到了一些问题。问题是。为以下说明编写 MIPS 程序集。假设变量 a – j 分配给临时寄存器 $0 – $8。假设数组 A 和 D 的基地址分别为 $9 和 $10。如果您需要一个寄存器来存储中间结果,您可以使用任何剩余的临时或保存的寄存器或注册 $at(汇编程序临时寄存器)。将汇编代码转换为机器码
D[i]=A[j]
现在,我已经设置成这样了
- 0$
- 1美元一个
- 2$ b
- 3$ c
- 4 美元
- 5 美元
- 6$ 克
- 7美元我
-
8$ j
- 9美元一个
- 10 美元乙
我很困惑,因为在课堂上,我的老师总是从我们做的 2 个示例的 SLL(逻辑左移)命令开始。我的问题是我们总是这样做吗?我不确定我是否理解 SLL 的实际含义/作用,所以我真的看不出它是否会对这个问题有益。到目前为止,我有第一个指令,这是假设 SLL 是发生的第一件事。我想也许LW会先来。这就是我得到的答案
- SLL $11 , $8 , 6 2.加$12、$9、$11
- 13.0 美元(12 美元)
- 售价 $14,$7,2
- 加$15,$14,$10
- sw $13,0(15$)
【问题讨论】:
-
这些数组是以字还是字节为索引的?临时寄存器只有 10 个,不是 11 个,它们是
$8-$15、$24-$25,而不是$0-$8。请把你的问题说清楚一点。