Из регистра внутри круглых скобок (base) читается значение, к нему прибавляется число, которое непосредственно кодируется в инструкции, это offset. По получившемуся адресу читается 32-битное 64-битное значение (видимо, это всё же MIPS).
если у меня есть такой масив values: .word 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, то какое распределение адресов для чисел будет в этом масиве?
Не понимаю вопроса. Какой адрес назначат ассемблер с линкером для values, такой и будет, и потом +4 после каждого числа в массиве. Если тебе надо по массиву пройтись, то наверное надо lw, а не ld. Сначала загрузить адрес в регистр la r2,values и потом в цикле lw r1, 0(r2) и инкремент на следующий элемент addi r2, r2, 4 (имена регистров r1/r2 с потолка).
понял. Большое спасибо
Обсуждают сегодня