在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 14455|回复: 12

[求助] 为什么mips的jal指令的返回值设成PC+8而不是PC+4?

[复制链接]
发表于 2010-1-5 17:33:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
如果是PC加8的话,必须在jal指令后加一条nop指令。
出力不讨好,为什么呢?
 楼主| 发表于 2010-1-6 09:26:46 | 显示全部楼层
是不是因为执行指令时pipeline
发表于 2010-1-7 10:19:00 | 显示全部楼层
因为MIPS是采用延时槽技术,在D段决定是否进行跳转,这个时候下一条指令已经进入了流水线,所以在跳转指令的下一条指令必须被执行,这就是延时槽技术。故采用的地址为:PC+8
发表于 2010-1-27 18:18:08 | 显示全部楼层
jump指令都要插入一条branch-slot指令,PC是当前branch指令地址,pc+4是branch slot指令,pc+8才是返回地址
发表于 2010-1-27 19:02:45 | 显示全部楼层
指令都要插入一条branch-delayslot指令,PC是当前branch指令地址,pc+4是branch dealy slot指令,pc+8才是返回地址
发表于 2010-1-27 19:03:47 | 显示全部楼层
你可以看看See-mips-run上面都有介绍的。
发表于 2010-1-27 19:05:22 | 显示全部楼层
一般CPU采用流水线Pipeline操作的,清楚了pipeline就明白了
发表于 2010-1-27 19:07:14 | 显示全部楼层
PC      ->JUMP
PC+4  ->Dealy slot
pc+8   ->return
发表于 2010-4-10 20:11:24 | 显示全部楼层
8# soelife


PC      ->JUMP
PC+4  ->Dealy slot
pc+8   ->return
发表于 2010-5-5 15:47:19 | 显示全部楼层
very good
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-23 11:11 , Processed in 0.026156 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表