这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [讨论]ADS中pc的值?

共7条 1/1 1 跳转至

[讨论]ADS中pc的值?

菜鸟
2005-12-28 00:21:04     打赏

先说ADS中pc显示的不是pc的实际值?对arm7来说,pc应为显示的地址+8。

以上理解是否正确?

还有如果遇到跳转指令,pc的实际值应为多少?比如:

当前执行地址为0x400,内容为跳转指令,跳到0x200,

那此时pc的值是408还是208?

再问:当发生irq中断时,pc的值为什么先从1c到20,再到24,然后再转到irq_handler。

这是为什么?




关键词: 讨论     的值    

菜鸟
2005-12-28 02:06:00     打赏
2楼
三级流水线

菜鸟
2005-12-28 17:02:00     打赏
3楼

arm7是三级流水,所以pc为当前地址地址+8,

请解释一下上面几个问题!


菜鸟
2006-02-24 19:37:00     打赏
4楼

请教一下:为什么pc与流水线有关系呢?pc应是当前取指的地址,和流水是没有关系的。

arm的pc一直没有明白


菜鸟
2006-02-28 19:40:00     打赏
5楼
由于ARM体系结构采用了多级流水线技术,对于ARM指令集而言,PC总是指向当前指令的下两条指令的地址,即PC的值为当前指令的地址值加8个字节。

菜鸟
2006-03-01 22:56:00     打赏
6楼

具体一点讲:

ARM7TDM使用三级流水线执行指令,第一阶段从内存中取回指令,第二阶段
开始解码,而第三阶段实际执行指令.故此,程序计数器总是超出当前执行的指令两条指令.(在为跳转指令计算偏移量时必须计算在内).因为有这个流水线,在跳转时丢失2 个指令周期(因为要重新添满流水线).


菜鸟
2006-03-10 17:27:00     打赏
7楼
[讨论]ADS中pc的值?

先说ADS中pc显示的不是pc的实际值?对arm7来说,pc应为显示的地址+8。

//是, pc就是显示的地址,在arm里,pc为取指指针。 pc-4为译码指针,pc-8为执行指针。

以上理解是否正确?

还有如果遇到跳转指令,pc的实际值应为多少?比如:

当前执行地址为0x400,内容为跳转指令,跳到0x200,

那此时pc的值是408还是208?

//此时pc指针就是0x200,但在跳转指令处理时,会丢掉先前的pc,和pc-4(自己理解的,没看过具体资料,不知道是否正确 ,错误的话,希望高手纠正,避免误导)。

再问:当发生irq中断时,pc的值为什么先从1c到20,再到24,然后再转到irq_handler。

这是为什么?


共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]