Mips Don';不使用gp寄存器
编译器生成上述代码以Mips Don';不使用gp寄存器,mips,mips32,Mips,Mips32,编译器生成上述代码以 jmp_gen_exp: la k0, gen_exp_handler # requires jump indirect jr k0 nop 如何避免使用gp寄存器?如果您知道gen\u exp\u handler的确切地址,可以使用li伪指令将该地址加载到寄存器$26。 例如,假设gen\u exp\u handler地址为0x12345600,则可以发出 000019bc: 8f9affc8 lw
jmp_gen_exp:
la k0, gen_exp_handler # requires jump indirect
jr k0
nop
如何避免使用gp寄存器?如果您知道
gen\u exp\u handler
的确切地址,可以使用li
伪指令将该地址加载到寄存器$26
。
例如,假设gen\u exp\u handler
地址为0x12345600
,则可以发出
000019bc: 8f9affc8 lw $26,-56($28) //lw k0,-56(gp)
000019c0: 00000000 nop
000019c4: 275a17d8 addiu $26,$26,6104=0x17d8 //addiu k0,k0,6104
000019c8: 03400008 jr $26 //jr k0
你的问题太宽了。您可以选择使用-static选项编译代码。然而,你最好解释一下你到底想通过这个“不要使用gp寄存器”任务实现什么。
li $k0, 0x12345600