Я пытаюсь намочить ноги с ассемблером MIPS с помощью средства моделирования МАРСА.
Моя основная проблема теперь состоит в том, как я инициализирую ряд ячеек памяти так, чтобы я мог получить доступ к ним позже с помощью инструкций по ассемблеру?
Например, я хочу инициализировать адреса 0x1001000 - 0x10001003 со значениями 0x99, 0x87, 0x23, 0x45. Я думаю, что это может быть сделано в объявлении данных (.data) раздел моей программы сборки, но я не уверен в синтаксисе. Действительно ли это возможно?
С другой стороны, в разделе .data, как я указываю хранение целочисленных значений в некоторой ячейке памяти (я не забочусь, где, но я просто хочу сослаться на них где-нибудь). Таким образом, я ищу эквивалент C "интервала x = 20, y=30, z=90"; я знаю, как сделать то использование инструкции MIPS, но действительно ли возможно объявить что-то как этот в .data разделе программы сборки MIPS?
Обычно вы не инициализируете определенные области памяти; каждый раздел (включая .data) позиционируется во время связывания, и перемещения разрешаются затем
Чтобы выполнить перемещение записи данных, вы выбираете имя и помещаете перед ним name:
, чтобы вы могли назовем его по имени позже. Вы указываете блок данных, используя значение .size
. Например:
.data
x: .word 20
y: .word 30
z: .word 90
Затем вы можете использовать метки в своей сборке:
.text
lw $t0, x