且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《逆向工程权威指南》—第2章2.2节ARM

更新时间:2022-10-12 13:41:17

本节书摘来自异步社区《逆向工程权威指南》一书中的第2章2.2节ARM,作者【乌克兰】Dennis Yurichev(丹尼斯),更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.2 ARM
ARM模式是什么情况?

指令清单2.3 Optimizing Keil 6/2013 (ARM模式)

f PROC
         MOV    r0,#0x7b ; 123
         BX     lr 
         ENDP

ARM程序使用R0寄存器传递函数返回值,所以指令把数值123赋值给R0。

ARM程序使用LR寄存器(Link Register)存储函数结束之后的返回地址(RA/ Return Address)。x86程序使用“栈”结构存储上述返回地址。可见,BX LR指令的作用是跳转到返回地址,即返回到调用者函数,然后继续执行调用体caller的后续指令。

如您所见,x86和ARM指令集的MOV指令确实和对应单词“move”没有什么瓜葛。它的作用是复制(copy),而非移动(move)。