原帖 | Jack | 2024-09-24 14:28 | 👍0 | 阅读约1
老师,LR保存函数的返回地址,我理解为函数跳转前的PC指针的值,那么这个LR为什么不是0,4,8,c这样的数字结尾的,这里我看到是9结尾的?
LR最低位那个1,是表示当前的程序是Thumb指令集模式。如果是0就是ARM指令集模式的,Thumb指令是16位的,ARM是32位的。ARM架构规定,如果LR最低位是1,意味着当前程序属于Thumb模式,当返回你的这个9结尾地址的时候,会把最低位清除,获得实际跳转地址。

相关笔记