ARM base instruction -- bl
BL
Branch with Link branches to a PC-relative offset, setting the register X30 to PC+4. It provides a hint that this is a subroutine call.
使用链路分支到PC相对偏移,将寄存器X30设置为PC+4。它提供了一个提示,表明这是一个子程序调用。
BL <label>
BL 绝对跳转 #imm,返回地址保存到LR(X30).
在跳转时会把下一条指令的地址装载到lr寄存器中,类似于函数调用。
Operation
X[30] = PC[] + 4;
BranchTo(PC[] + offset, BranchType_DIRCALL);
401f60: 900000c0 adrp x0, 419000 <ferror@plt+0x17120>
401f64: 911aa000 add x0, x0, #0x6a8 // x0="COLUMNS"
401f68: 97ffffc6 bl 401e80 <getenv@plt>*/ // getenv("COLUMNS")