2016-11-30 2 views
1

私はリンクリストをMIPSで実装しようとしており、そのためにメモリを割り当てる必要もあります。私が見ているすべての例では、リストの最初の要素は特定のレジスタにあると仮定していますが、現実的にその方法を実際に説明するものではありません。syscall 9をMIPSのリンクリストで使用する

だから私はここに2つの質問がありますが、それらが相互に関連している

# 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 

を私はこれを試してみましたが、それは「ストアアドレスは、ワード境界を0x10040319に並んでいない」と言います。 1つは、syscall 9でメモリを適切に割り当てる方法です。もう1つは、リンクされたリストで使用できるように参照する方法です(リンクされたリストを使用してソートアルゴリズムを実装する必要があります。任意の数の要素(固定数ではない)、これはステップ-1である。ありがとう。

答えて

2

Oh god、明らかに、割り当てのためにアップロードしたシミュレータでした。 私はMars MIPSの最新バージョンを公式サイトからダウンロードしたところ、動作しました。これは厄介だ。

関連する問題