MIPS 汇编中的“%hi(__gnu_local_gp)”是什么意思?
What does "%hi(__gnu_local_gp)" mean in MIPS assembly?
我正在学习 MIPS,所以我写了一个简单的 C 程序并用 gcc 生成了 MIPS 程序集,里面有这部分
lui ,%hi(__gnu_local_gp)
addiu ,,%lo(__gnu_local_gp)
我知道 lui
的意思是 load upper immediate 但我不知道 %hi(__gnu_local_gp)
和 %lo(__gnu_local_gp)
是什么意思; addiu
表示 添加立即无符号数 .
lo
和hi
是寄存器吗?
如果是,%
是什么意思?
指令将符号__gnu_local_gp
的地址加载到寄存器28中。
__gnu_local_gp
是一个内存位置,用来存放Global Pointer,寄存器28通常用来存放全局指针。
'%hi'和'%lo'是GNU汇编程序的内置函数,与MIPS架构中的hi
和lo
寄存器无关。
我正在学习 MIPS,所以我写了一个简单的 C 程序并用 gcc 生成了 MIPS 程序集,里面有这部分
lui ,%hi(__gnu_local_gp)
addiu ,,%lo(__gnu_local_gp)
我知道 lui
的意思是 load upper immediate 但我不知道 %hi(__gnu_local_gp)
和 %lo(__gnu_local_gp)
是什么意思; addiu
表示 添加立即无符号数 .
lo
和hi
是寄存器吗?
如果是,%
是什么意思?
指令将符号__gnu_local_gp
的地址加载到寄存器28中。
__gnu_local_gp
是一个内存位置,用来存放Global Pointer,寄存器28通常用来存放全局指针。
'%hi'和'%lo'是GNU汇编程序的内置函数,与MIPS架构中的hi
和lo
寄存器无关。