ARM切换到THUMB模式,根据ARM的文档说是用一个跳转完成,并且跳转地址要存储在general register里,地址中最低位为1。我一向喜欢眼见为实。最简单就是看看编译后变成什么样子,下面是一个叫ab的函数,开thumb编译的,结果就变成了下面这样:
可以看见函数ab的正式开始之前,多了一段引入函数,或者说是thumb模式切换函数叫$Ven$AT$I$$ab,他做的动作就是如spec所说的事情。
armv5以上的也可以用BLX到thumb代码的地址来完成
本文探讨了ARM架构中从ARM模式切换到THUMB模式的方法。通过编译后的实例代码,详细解析了如何使用特定指令完成模式切换的过程。
ARM切换到THUMB模式,根据ARM的文档说是用一个跳转完成,并且跳转地址要存储在general register里,地址中最低位为1。我一向喜欢眼见为实。最简单就是看看编译后变成什么样子,下面是一个叫ab的函数,开thumb编译的,结果就变成了下面这样:
可以看见函数ab的正式开始之前,多了一段引入函数,或者说是thumb模式切换函数叫$Ven$AT$I$$ab,他做的动作就是如spec所说的事情。
armv5以上的也可以用BLX到thumb代码的地址来完成
2428

被折叠的 条评论
为什么被折叠?