5
我想問一下內存訪問。當我執行load word
命令時,存在什麼內存限制?這意味着我可以用作偏移量或基址寄存器的最大數量是多少?MIPS內存限制?
寄存器是32位,據我所知「立即」是16位。 因此,我敢肯定,我不能這樣做
array: .word 0:20000
~
la $s0, array
lw $s1, 15000($s0)
...
所以,如果我想訪問15000,我可能需要la
更小的東西,並從那裏向右走呢? 但是,爲了保持良好狀態,我需要訪問哪些較小的值?爲什麼?
所以,如果我想和偏移大於32767訪問值,那麼我就需要到'la'在32767並使用另一個偏移量?因爲在我的例子中,我確實使用了一個合適的值(數組的第一個字),但在這種情況下,我說我必須使用另一個'la'或有另一種方式? – Elias 2011-03-09 09:20:03
如果要訪問偏移量不適合直接偏移量字段的值,那麼您需要將偏移量存入寄存器並將其添加到地址中。 'la'會給你一個獲得隨機值的最優方法。如果你一次完成這個操作,只需使用'la'作爲你想要的偏移量,並在'lw'的偏移量字段中使用'0'。如果您訪問多個附近的事物,則執行'la'並添加一次,然後使用相應的立即偏移進行訪問。 – moonshadow 2011-03-09 09:28:11