我有一个我试图理解的静态库档案。
首先,我使用“ar”来提取目标文件。
目标文件是“ELF 32 位 LSB 可重定位、ARM、EABI5 版本 1 (SYSV),未剥离”
然后我使用 'objdump -D' 来获取汇编指令。
现在我正在观察程序集列表并找到一些奇怪的(对我来说)说明。
显然,在一个带有链接(bl)的分支之后,R0 被移动到 R3,下一条指令将 R3 移动到 R0。
23c: e1a00003 mov r0, r3
240: ebfffffe bl 0 <atoi>
244: e1a03000 mov r3, r0
248: e1a00003 mov r0, r3
这在存档内的不同目标文件中多次发生。
最后,当从分支返回时,R0 和 R3 都被设置为 R0 的值。
这种行为有什么好的解释?