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