0
我正在嘗試將一個字節加載到MIPS中的寄存器中。這是初學者的課程,所以先進的說明是不允許的。 (無循環等)(ASM)將字節加載到寄存器中時出現故障
但是,它加載的是不正確的值。
我覺得這條線是不正確的:
lb $10,2($8) # load byte 133
它加載-123到寄存器$ 10!?
在本課中,我們只學習了加載/存儲字節。所以我可能會在offset + base_address上發生錯誤。雖然,我看不出我的錯誤是什麼。
你能幫忙/建議嗎? :)
## sum values, compute average, store result in memory ##
## $7=accumulator $8=base address $9=temp $10=temp
## data segment starts at 0x10000000
.data
.byte 12
.byte 97
.byte 133
.byte 82
.byte 236
.text
main:
lui $8,0x1000 # initialise base address
lb $7,0($8) # load byte 12
lb $9,1($8) # load byte 97
ori $10,$0,5 # total amount of integers
lb $10,2($8) # load byte 133
addu $7,$7,$9 # 12+97
lb $9,3($8) # load byte 82
addu $7,$7,$10 # add 133 to subtotal
lb $8,4($8) # load byte 236
addu $7,$7,$9 # add 82 to subtotal
addu $7,$7,$8 # add 236 to subtotal
##calculate average##
div $7,$10 # sum/number of items
mflo $10 # average
sb $10,10($8) # store average in 0x10000010
sll $0,$0,0 # nop for load/store delay
謝謝。我只是想到了這一點。 – BBedit 2013-03-12 16:44:21
@ user2071506:如果這是解決問題的方法,您可能需要將此答案標記爲已接受。 – Michael 2013-03-12 17:39:23