【发布时间】:2015-02-19 03:26:43
【问题描述】:
我在期中考试时遇到了这个问题,我想知道正确答案是什么。
这是一个问题:
令 x[] 为整数数组,k 为整数。假设 x 和 k 的内存地址分别由两个标签“x”和“k”指定。用mips汇编语言实现如下语句x[4] = x[5] +k
这是我的回答尝试,我只得了一半:
//addresses of x, k, 4, and 5
la $s0, x
la $s1, k
li $s2, 4
li $s3, 5
//假设 $s1 = x[4] 和 $s2 = x[5] la $s3, k 添加 $s1, $s2, $s3 //x[4] = x[5] + k
反馈说我应该有 lw 和 sw 但我不确定如何处理它们。
【问题讨论】:
-
lw 是加载字,sw 是存储字。您需要读取地址 x+(5*sizeof(word)) 处的单词(是 x + 20 吗?),这意味着来自地址 x+20 的 lw 有一种方法可以用一个 lw 做到这一点。然后你需要把它加到你知道怎么做的 k 上。然后使用 sw 将其存储到地址 x + (4*sizeof(word)) 或 x+16。
标签: algorithm memory assembly mips