ARM指令问题

[复制链接]
1900|3
 楼主| sinadz 发表于 2011-9-21 22:33 | 显示全部楼层 |阅读模式
问题一:MOV是怎么影响CPSR的

问题二:求证对BX用最后一位标志状态切换的一点猜想
程序代码如下:
AREA EX,CODE,READONLY
ENTRY
MAIN ADR RO,THUMBCODE+1
BX RO

CODE16
THUMBCODE MOV R2,#1
MOV R3,#2
ADD R2,R2,R3
ADR R0,ARMCODE
BX RO

CODE32
ARMCODE MOV R4,#3
MOV R5,#4
ADD R4,R5,R3
B MAIN
END
本人有预先猜想求证
1.跳转是通过修改pc完成的,无论thumb和ARM地址的都是按照最少2的倍数递增的,因此地址最后一位一直为0,所以BX指令可以通过最后一位标示要跳转的是thumb还是ARM指令
例如ARM指令pc从8004到8008最后一位的二进制是0100到1000,thumb的8004到8006最后一位是0100到0110
这样想对吗?
2.如果我在thumb中直接通过一个B指令分支到一个ARM指令行会出现什么样的情况呢?
相见欢喜 发表于 2011-9-22 00:44 | 显示全部楼层
不懂啊,好复杂
jackyard 发表于 2011-9-22 16:41 | 显示全部楼层
不常用,用时看一下资料就可以了。有一年没有用到了
baidudz 发表于 2011-9-22 17:51 | 显示全部楼层
对于ARM汇编还是不太熟练
您需要登录后才可以回帖 登录 | 注册

本版积分规则

304

主题

2313

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部