我想用戶輸入存儲到一個數組,但是當我使用SW我得到一個錯誤「存儲地址的綁定字未對齊」。我的目標是從陣列10個整數讀,但之後,我輸入的第一個數字,我得到的SW命令錯誤。我不知道我在做什麼錯我花了幾個小時試圖弄清楚。任何幫助將不勝感激,並顯着有用。MIPS - 存儲整數數組根據用戶輸入
.data
mess: .asciiz " Enter 10 numbers to be stored in the array. "
array: .space 40 #10 element integer array
.globl main
.text
main:
jal read
b done
read:
la $t0, 0 #count variable
b readLoop
jr $ra
readLoop:
beq $t0, 40, read #branch if equal to 40, 10 items
li $v0, 4 #Print string
la $a0, mess #load prompt
syscall
li $v0, 5 #read int
syscall
sw $v0, array #store input in array ERROR HERE
addi $t0, $t0, 4 #add by 4 to count
b readLoop
print:
done:
這對我有效。我不知道爲什麼它沒有上述
.data
list: .space 16
.globl main
.text
main:
li $v0, 5
syscall
sw $v0, list
move $a0, $v0
li $v0, 1
syscall
這並沒有改變什麼儘管如此,感謝你的迴應。 –
您是否收到編譯錯誤? '.p2align 2'應該對齊上這的2(2^2 = 4在這裏)的功率的地址下面的代碼/數據。如果你給「mess」字符串添加一到三個額外字符會怎麼樣?這也可以修正'array'的對齊方式。 –