2017-04-04 49 views
1

林學習MIPS所以我所著簡單的C程序和生成的MIPS使用gcc組裝和在側面也有這部分什麼「%喜(__ gnu_local_gp)」的意思是在MIPS assebmly

lui $28,%hi(__gnu_local_gp) 
addiu $28,$28,%lo(__gnu_local_gp) 

我知道呂手段加載上限立即但我不知道什麼%hi(__gnu_local_gp)%lo(__gnu_local_gp)意味着,addiu意味着添加immedite無符號。是lo和hi登記如果是的話%意味着什麼?

+0

該指令只是將常量gnu_local_gp的低位和高位字寫入立即數寄存器。 – user3811082

回答

0

所述指令符號__gnu_local_gp的地址加載到寄存器28 __gnu_local_gp是用於存儲Global Pointer,和寄存器28通常用於保持全局指針的存儲器位置。

'%hi'和'%lo'是GNU彙編器的內置函數,並且與MIPS架構中的hilo寄存器無關。