数组索引的MIPS程序集内存地址

时间:2019-02-27 01:39:33

标签: arrays assembly memory mips short

我正在为MIPS组装作业。我在这里有这个问题,想知道是否有人可以对我的回答给我一些澄清:

假设您要编写一个包含两个数组X和Y的程序,求和 每个数组对应的元素,并将结果写入第三个数组Z。每个数组有15个元素,其数据类型为SHORT(16位)。您知道X,Y和Z的基地址为0x00100000、0x00200000和0x00300000。

因此,据我所知,当您使用15个元素(索引)(例如x [1],x [2]等)在MIPS中制作数组时,每条指令为8位。由于MIPS是32位,因此例如x [1]的内存地址将为0x00100000,然后由于8 * 4 = 32位而将跳4,因此,由于每个内存地址都包含32位,因此x [2]将为0x00100004,并且以此类推,直到x [15] = 0x00100020

因此,如果SHORT数据值为16位,则内存将跳2,因此它将为

y0 = 0x00200000
y1 = 0x00200002
y2=  0x00200004
y3 = 0x00200008
y4 = 0x0020000A
y5 = 0x0020000C
y6 = 0x0020000E

这是正确的吗?感谢您对这个问题的澄清。

0 个答案:

没有答案