2016-11-30 5 views
1

Я пытаюсь реализовать связанный список в MIPS, и мне также нужно выделить для него память. В каждом примере, который я вижу, они предполагают, что первый элемент в списке находится в определенном регистре, но на самом деле они не объясняют, как это сделать реалистично.Использование syscall 9 со связанным списком в 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 

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

ответ

2

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