Использование системного вызова 9 со связанным списком в MIPS

Я пытаюсь реализовать связанный список в MIPS, и мне также нужно выделить для него память. В каждом примере, который я вижу, они предполагают, что первый элемент в списке находится в определенном регистре, но на самом деле они не объясняют, как это сделать на самом деле.

Я пробовал это, но он говорит: «Адрес магазина не выровнен по границе слова 0x10040319».

# Allocate memory with syscall 9
li $v0, 9
addi $a0, $zero, 8  # Reserve 8 bytes, 4 for int data, 4 for pointer to next
syscall
# Make $t0 point to the beginning of the reserved memory?
add $t0, $v0, $zero
# Create linked list node
addi $t1, $zero, 10   # $t1 has the int data
sw $t1, 0($t0)      # $t1 is now node->data
sw $zero, 4($t0)      # node->next is NULL

Итак, у меня есть два вопроса, но они связаны друг с другом. Во-первых, как правильно выделить память с помощью системного вызова 9, а во-вторых, как сослаться на нее, чтобы ее можно было использовать в связанном списке (на самом деле мне нужно реализовать алгоритм сортировки с использованием связанных списков, потому что мне нужно иметь возможность сортировать любое количество элементов (не фиксированное число), и это шаг -1, ха-ха). Спасибо.


person sbstnssndn    schedule 30.11.2016    source источник


Ответы (1)


О боже, видимо, это был симулятор, который они загрузили для задания. Я скачал самую последнюю версию Mars MIPS с официального сайта, и она заработала. Ну это странно.

person sbstnssndn    schedule 01.12.2016