根据this MIPS规范BGEZAL
执行以下操作:
I: tgt_offset ← sign_extend(offset || 02)
condition ← GPR[rs] ≥ 0GPRLEN
GPR[31] ← PC + 8
I+1: if condition then
PC ← PC + tgt_offset
endif
据我所知,即使没有采取分支,也会发生链接GPR[31] ← PC + 8
。是这样还是我误解了?
如果是这样,那么链接id的重点是什么呢?
答案 0 :(得分:1)
自己发现问题,希望它对其他人有用:
link register $31
始终修改即使未采用分支,这也是因为硬件实现。很难实现不改变寄存器的硬件。然而,它总是可以通过软件轻松处理,只需保存以前的$31
值,无论分支是否被更改,都可以。{/ p>