ARM汇编基础知识汇总与Inline Hook

本文介绍了ARM汇编的基础知识,包括B、BL、BLX指令的用途,以及ARM参数传递和返回值的规则。同时,文章详细阐述了Inline Hook的实现流程,包括修改函数地址、备份原方法、调整指令和跳转,并对比了Inline Hook与GOT表Hook的优缺点。
摘要由CSDN通过智能技术生成

ARM汇编

ARM汇编中B、BL、BLX指令的使用?

B:跳转

BL:例如BL{cond} label。带链接的跳转,如果条件cond满足,会首先将当前指令的下一条指令的地址拷贝到R14(即LR)寄存器中,然后跳转到label指定的地址处继续执行。这个指令通常用于调用子程序,在子程序的尾部,通过MOV PC, LR返回到主程序中。

BX:例如BX{cond} Rm。带状态切换的跳转,如果条件cond满足,处理器判断Rm的位[0]是否为1,若为1,目标地址处的代码解释为thumb代码;若为0,则将目标地址处代码解释为ARM代码来执行。

 

Arm处理器采用3级流水线来增加处理器指令流的速度,也就是说程序计数器R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行”的,即PC总是指向当前正在执行的指令地址再加2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值