具體來說,比如他用$s1來幹這個,那麽如果妳自己寫的程序用到了$s1,這樣匯編器在執行某些指令的時候把中間變量存到了$s1裏,就會破壞妳的數據,導致程序出錯。而如果匯編器用$at,妳用$s1,二者不想幹擾,就不會有這種隱患。
而關於第二個問題,其實$at不僅是數據重組,它有很多作用,整體來講就是偽指令的中間變量,針對妳的描述,猜想可能是針對li這條偽指令的,那麽下邊舉壹個例子:
指令
li $t1,40
是壹條偽指令,在匯編器中會轉換成
addi $t1,$zero,40
但是
li $t1,-4000000
因為數字太大,需要拆開,則會被轉換成
lui $at,0xffc2
ori $t1,$at,0xf700
這之中,$at就作為壹個中間變量來用的
以上雖為手打,檢查了壹遍似乎沒錯= =