Я работаю над домашним заданием для сборки 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
Было бы это правильно?Спасибо за любые разъяснения по этому вопросу.