0
jmp_gen_exp:
    la      k0, gen_exp_handler         # requires jump indirect
    jr      k0
    nop

编译器生成上面的代码

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

如何避免使用 gp 寄存器?

4

1 回答 1

1

如果您知道确切的地址,gen_exp_handler则可以使用li伪指令将该地址加载到寄存器中$26。例如,假设gen_exp_handler地址是0x12345600那么你可以发出

  li $k0, 0x12345600
于 2013-02-05T15:07:36.500 回答