cortex到底是要偶地址还是奇数地址

[复制链接]
5052|6
 楼主| snakeemail 发表于 2013-3-14 22:35 | 显示全部楼层 |阅读模式
我看程序的起始部分都是定义在偶数,可是看同事的升级应用程序的地址,又是放在奇数地址的。thumb是奇数地址呀,但是我仿真运行,怎么都是偶数地址
阿南 发表于 2013-3-15 09:24 | 显示全部楼层
32位ARM或16位Thumb都是偶对齐的
jlass 发表于 2013-3-15 09:47 | 显示全部楼层
我还从没见过奇对齐的
 楼主| snakeemail 发表于 2013-3-15 13:11 | 显示全部楼层
写pc的时候非要奇地址
xinzha 发表于 2013-3-15 13:27 | 显示全部楼层
最低位为1只是为了向cpu说明,现在要跳向thumb code,真正的地址还是偶地址对其的。

评分

参与人数 1威望 +5 收起 理由
snakeemail + 5

查看全部评分

airwill 发表于 2013-3-15 13:32 | 显示全部楼层
thumb是奇数地址, 原因是 ARM 内核的设置.
由于指令都是偶地址的, 最后一位没用, ARM 内核拿来另作他用, 以代表指令(ARM为0, THUMB为1)模式

评分

参与人数 1威望 +5 收起 理由
snakeemail + 5

查看全部评分

 楼主| snakeemail 发表于 2013-3-15 14:55 | 显示全部楼层
4.BX带状态切换的跳转指令

  格式:BX <RN>;

  功能:处理器跳转到目标地址处,从那里继续执行;

  目标地址为寄存器RN的值和0xFFFFFFFE(最后一位自动清零)作与操作的结果。

目标地址处的指令可以是ARM指令,也可以是Thumb指令。

  RN的最低位存到CPSR的t位,此位决定了指令时ARM还是THUBM状态。为0表明是ARM指令,为1表明是THUMB指令。

在arm中是按照pc取指令的。32位可以寻址32G

thumb指令中取值是按照偶地址实现的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:提供500W线性 交流电源。0~300VAC,45~500Hz 提供10KW,0-330V直流电源,具体见http://blog.21ic.com/user1/3639/archives/2012/88528.html

547

主题

1909

帖子

8

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