打印

求助:arm 汇编问题

[复制链接]
1605|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Pingo_zp|  楼主 | 2009-12-7 21:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如下代码,个人认为33f80004处pc值应为33f80004,命令ldr pc,[pc,#20],依照本人理解就是[pc+20]=[33f80004+0x14]=[33f80018]的值送入pc
问题1:依据u-boot反汇编的结果(见下面代码),实际上是将[33f80020]的值送入pc,如何解释自己理解与实际的差异?应该是自己错了,但是该如何理解呢?
问题2:代码 mvnccs r0,#24 是什么意思?如何理解?
33f80004: e59ff014  ldr pc, [pc, #20] ; 33f80020 <_undefined_instruction>
33f80020 <_undefined_instruction>:
33f80020: 33f80160  mvnccs r0, #24 ; 0x18

相关帖子

沙发
xinzha| | 2009-12-8 20:58 | 只看该作者
由于流水线的存在,pc等于当前执行指令地址加8,明白了吧。

使用特权

评论回复
板凳
Pingo_zp|  楼主 | 2009-12-8 22:57 | 只看该作者
为什么是加8,arm7是三级流水线,可以说得通,但arm9是五级流水线啊?
有这方面资料可以推荐以下,谢谢

使用特权

评论回复
地板
zyok| | 2009-12-9 04:30 | 只看该作者
五级流水线中的 “Memory”和“Write”只是对三件流水线中“Execute”的细化,不影响PC
可以查相应的技术参考手册..

使用特权

评论回复
5
Pingo_zp|  楼主 | 2009-12-9 18:46 | 只看该作者
ls说得是对的,谢谢!

使用特权

评论回复
6
Fe_ARM| | 2009-12-9 20:53 | 只看该作者
ARM7/ARM9的PC均是加8

使用特权

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

本版积分规则

6

主题

18

帖子

0

粉丝