Как вы распределяете массив так, чтобы он начинался в определенном месте в памяти?

Как вы распределяете массив так, чтобы он начинался в определенном месте в памяти? Например

    .data
array: 
    .space 400

сделал бы массив из 100 слов, но я бы хотел, чтобы массив начинался, например, с 5000 в памяти. Как я могу это сделать? (Я помню, в Intel ASM это было действительно легко)

Редактировать: я использую spim в Linux. Кстати, это действительно имеет значение?

13.10.2009 12:26:51
Какое программное обеспечение на ассемблере вы используете?
moonshadow 13.10.2009 12:30:55
1 ОТВЕТ
РЕШЕНИЕ

Какой ассемблер вы используете, имеет значение, потому что синтаксис, который вы запрашиваете, не является частью набора команд MIPS, это директивы ассемблера и, следовательно, специфичные для ассемблера.

Из документации SPIM :

.data <addr> : последующие элементы хранятся в сегменте данных. Если присутствует необязательный аргумент addr, последующие элементы сохраняются, начиная с адреса addr.

.space n Выделить n байтов пространства в текущем сегменте (который должен быть сегментом данных в SPIM).

Таким образом,

    .data 5000
array: 
    .space 400

должен делать то, что вы хотите.

0
13.10.2009 12:41:57