我想一個C程序翻譯成MIPS彙編代碼的Mips:變量保存在另一個變量
在我的C代碼,我有這樣一行:
int base;
int count;
count = base;
在MIPS,怎麼會我在計數中存儲基數的值?我看到的用於加載和存儲的唯一指令是lw
和sw
,它們的原型僅來自寄存器源 - > RAM目標或RAM源 - >註冊目標。
任何幫助,將不勝感激。
編輯 我希望這可以在一個單一的指令來完成,像
move base acc
但顯然這是不可能的(至少我發現類似的無指令的例子),我選擇了這一點:
lw $t0, base //load base into $t0
sw $t0, count //store the value of $t0 in count
如果有一個行指令可以做到這一點會更好,如果有人知道的。
「base」和「counter」的值不在寄存器中,它們存儲在RAM中。所以當我這樣做時,我只會收到一條錯誤消息。 – 2012-02-02 04:25:25
哦,如果它們不是寄存器,那就不一樣了。更新。 – duskwuff 2012-02-02 04:33:12
它可以很好,它可以優化這條指令,即使它是「lw/sw」等價的一行,我花了1個小時尋找指令。 – 2012-02-02 04:36:52