2013-11-03 73 views
0

我在.data分段中創建了.byte var1。現在我想將我的var1的內容存儲到$ t1中。爲此,我應該使用lb指導員還是la指導員。說實話,我無法弄清楚兩者之間的差異。提前致謝。這裏是我的嘗試:Mips,保存變量中存儲的字符以註冊

.data 

var1: .byte '/' 

.text 

main: 
    lb $t2,var1 #I want to t2 stores '/' character. 

一個問題:當我寫beq $t1,$t2,它比較兩個不會忽略,或這兩個地址的內容?

回答

2
  1. lb將從var1 8位值加載到$t2la是一個sudo指令,它會將內存中數據的完整32位地址加載到$t2(假設您使用的是32位體系結構)。有關MIPS指令的更多詳細信息,請參閱here

  2. Beq比較$t1$t2這兩個值。如果這些是內存地址,它將比較地址,而不是這些地址的數據。

+0

感謝您的回覆。我還有一個問題。假設我做了'$ s1 var1'。在這種情況下,t1存儲var1的地址?然後,我想將相同的地址存儲到$ t1寄存器中,以便我可以在不丟失var1的起始點的情況下更改它。爲此,'la $ t1,0($ s1)'是okey? – caesar

+0

是的,這將工作。雖然,如果可能的話,可能會更清楚(至少和彙編一樣清晰),將其寫成'la $ t1 var1'。 – NULL