Блок MIPS: как объявить целочисленные значения в разделе .data?

Я пытаюсь намочить ноги с ассемблером MIPS с помощью средства моделирования МАРСА.

Моя основная проблема теперь состоит в том, как я инициализирую ряд ячеек памяти так, чтобы я мог получить доступ к ним позже с помощью инструкций по ассемблеру?

Например, я хочу инициализировать адреса 0x1001000 - 0x10001003 со значениями 0x99, 0x87, 0x23, 0x45. Я думаю, что это может быть сделано в объявлении данных (.data) раздел моей программы сборки, но я не уверен в синтаксисе. Действительно ли это возможно?

С другой стороны, в разделе .data, как я указываю хранение целочисленных значений в некоторой ячейке памяти (я не забочусь, где, но я просто хочу сослаться на них где-нибудь). Таким образом, я ищу эквивалент C "интервала x = 20, y=30, z=90"; я знаю, как сделать то использование инструкции MIPS, но действительно ли возможно объявить что-то как этот в .data разделе программы сборки MIPS?

8
задан starblue 13 April 2010 в 06:51
поделиться

1 ответ

Обычно вы не инициализируете определенные области памяти; каждый раздел (включая .data) позиционируется во время связывания, и перемещения разрешаются затем

Чтобы выполнить перемещение записи данных, вы выбираете имя и помещаете перед ним name: , чтобы вы могли назовем его по имени позже. Вы указываете блок данных, используя значение .size . Например:

.data
    x: .word 20
    y: .word 30
    z: .word 90

Затем вы можете использовать метки в своей сборке:

.text
    lw $t0, x
8
ответ дан 5 December 2019 в 20:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: