2
を作成する私のコードの一部です:そして、ここなどでソート私はMIPSの単一リンクリストを作成することになっています単一リンクリスト
.data
STR_NEWLINE: .asciiz "\n"
STR_ENTER: .asciiz "enter an integer(0 to finish): "
.text
main:
sw $zero,0($sp) # list_head = 0
move $s0,$sp # list_end adress
main_loop:
la $a0,STR_ENTER
li $v0,4
syscall
li $v0,5
syscall
blez $v0,bubble_loop
addi $sp, $sp, -8
sw $v0,0($sp)
sw $t0,4($sp)
move $s0,$sp
addi $t0, $t0, -8
j main_loop
それがうまく機能し、それは、ユーザからの入力を取得し、それらをメモリに保存し、並べ替えて印刷します。しかし、問題は(そうでないかもしれない)私はリンクリスト構造が次のようなものであることを知っているので、本当のリンクリストであるかどうかはわかりません:
|データ| pointerToAnywhere | ... |データ| pointerToAnywhere |
私のコードでは、常に次々と同じようなものなので、次の入力をメモリ内の空の場所に格納できない場合は、ポインタを持つ必要はありません。
要約すると、「addi $ sp、$ sp、-8」ではなく、$ sp =(メモリ内の空き領域)を持つようにコードを改善する必要がありますか?