MIPS 操作存储在数据中的数组
MIPS Manipulating array stored in data
我似乎无法想象这是如何工作的。
我正在尝试将这个简单的作业从 C 转换为 mips:
#define ARRAYSIZE 16
int intarray[]={1, 5, -3, 6, 12, 21, 18, 44, 32, 9, 23, 10, 11, 99, 100, 24};
intarray[little] = intarray[ARRAYSIZE-1];
所以我在数据中定义数组
.data
intarray: .word 1, 5, -3, 6, 12, 21, 18, 44, 32, 9, 23, 10, 11, 99, 100, 24
现在的问题是我知道如何轻松地从这个数组中加载单词
lw $t0, intarray($a0)
但我不知道如何保存到那个数组,因为它不在寄存器中。我什至可以操纵那个数组,还是必须在寄存器中构建一个重复的数组?
我混淆了 lw
和 sw
,起初在汇编中的思考可能会令人困惑。原来我要找的答案是你需要先加载数组的基址(la address
)然后调用sw register address
.
我似乎无法想象这是如何工作的。 我正在尝试将这个简单的作业从 C 转换为 mips:
#define ARRAYSIZE 16
int intarray[]={1, 5, -3, 6, 12, 21, 18, 44, 32, 9, 23, 10, 11, 99, 100, 24};
intarray[little] = intarray[ARRAYSIZE-1];
所以我在数据中定义数组
.data
intarray: .word 1, 5, -3, 6, 12, 21, 18, 44, 32, 9, 23, 10, 11, 99, 100, 24
现在的问题是我知道如何轻松地从这个数组中加载单词
lw $t0, intarray($a0)
但我不知道如何保存到那个数组,因为它不在寄存器中。我什至可以操纵那个数组,还是必须在寄存器中构建一个重复的数组?
我混淆了 lw
和 sw
,起初在汇编中的思考可能会令人困惑。原来我要找的答案是你需要先加载数组的基址(la address
)然后调用sw register address
.