打印

ARM汇编MOVS指令影响CPSR和BX状态切换指令的问题

[复制链接]
1692|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
重头再来吧|  楼主 | 2012-4-16 21:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题一: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指令行会出现什么样的情况呢?

小弟新入分数比较少,请各位体谅

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

8

帖子

0

粉丝