打印

arm 流水线问题

[复制链接]
1737|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
风宇一号|  楼主 | 2010-2-4 20:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
汇编跳转问题:

JMP   取指令  译码   执行
add             取指令 译码  执行
sub                       取指令 译码 执行

当JMP 执行时,PC是指向 SUB 的,那跳转后,是把PC的地址 保存到 R14中吗?
还是把ADD的地址保存到R14中?
谢谢!
不胜感激
file:///C:/Documents%20and%20Settings/Administrator/%E6%A1%8C%E9%9D%A2/%E6%9C%AA%E5%91%BD%E5%90%8D.jpg

相关帖子

沙发
风宇一号|  楼主 | 2010-2-4 20:53 | 只看该作者
不是跳转,说错了,是跳到子程序中,要返回来! 返回地址是什么?

使用特权

评论回复
板凳
ToCreater| | 2010-2-4 20:53 | 只看该作者
PC

使用特权

评论回复
地板
风宇一号|  楼主 | 2010-2-4 20:57 | 只看该作者
3# ToCreater

使用特权

评论回复
5
风宇一号|  楼主 | 2010-2-4 20:59 | 只看该作者
3# ToCreater

PC的话,那么不是漏掉 中间的一条指令了吗?

使用特权

评论回复
6
xinzha| | 2010-2-5 09:04 | 只看该作者
ARM并不是标准的RISC流水线,没有延迟槽的概念,可以去看一下ARM官方的ARCH文档,跳转之后的LR记录的是跳转的下一条指令。下面是arm v5的arch文档中关于B/BL的伪代码描述
Operation
if ConditionPassed(cond) then
if L == 1 then
    LR = address of the instruction after the branch instruction
PC = PC + (SignExtend_30(signed_immed_24) << 2)

使用特权

评论回复
7
dream_blue| | 2010-2-6 13:31 | 只看该作者
把ADD的地址保存在R14中

使用特权

评论回复
8
toner| | 2010-2-8 14:01 | 只看该作者
7楼正解

使用特权

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

本版积分规则

1

主题

6

帖子

1

粉丝