Адрес памяти сборки MIPS индексов массива - PullRequest
0 голосов
/ 27 февраля 2019

Я работаю над домашним заданием для сборки MIPS.У меня есть этот вопрос здесь, и мне было интересно, если кто-то может дать мне некоторые разъяснения в моем ответе:

Скажем, вы хотите написать программу, которая принимает два массива, X и Y, суммирует соответствующий элемент каждого и пишетрезультат в третий массив Z. Каждый массив имеет 15 элементов и имеет тип данных SHORT (16 бит).Вы знаете, что базовые адреса X, Y и Z - 0x00100000, 0x00200000 и 0x00300000.

Итак, насколько я знаю, когда вы создаете массив в MIPS с 15 элементами (индексами), такими как x[1], x [2] и т. Д. Каждая инструкция состоит из 8 бит.Поскольку MIPS является 32-разрядным, адрес памяти, например, x [1], будет 0x00100000, а затем он увеличится на 4, потому что 8 * 4 = 32 бита, так как каждый адрес памяти содержит 32 бита, x [2] будет 0x00100004 ии так до тех пор, пока x [15] = 0x00100020

Итак, при коротком значении данных, равном 16 битам, память перепрыгнет на 2, так что это будет

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

Было бы это правильно?Спасибо за любые разъяснения по этому вопросу.

...