论坛» 嵌入式开发» MCU

关于程序计数器PC

菜鸟
2004-11-11 01:06 1楼
ARM中为什么PC总是指向当前指令的下两条指令的地址,而不是指向当前指令地址或当前指令的下一条指令地址?
菜鸟
2004-11-11 03:48 2楼

三级流水线:取指令,译指令,执行指令

所以到每条指令的执行周期的时候,PC已经加2了。

菜鸟
2004-11-11 17:30 3楼
既然PC不是指向当前指令的下一条指令,当执行完当前指令后,系统如何找到下一条指令,还要通过计算得到下一条指令的地址?
菜鸟
2004-11-11 18:34 4楼

twentyone不是已经说了吗, 这里有一个pipeline的概念, 下一条指令早就取到了.

菜鸟
2004-11-13 01:02 5楼
程序跳转BL,R14保存的是PC中的值还是指令BL的下一条指令的值?
菜鸟
2004-11-13 01:03 6楼
程序跳转BL,R14保存的是PC中的值还是指令BL的下一条指令地址?
菜鸟
2004-11-13 01:07 7楼

一般地为当前pc的值,普通程序调用你可以不必关心,异常处理时你要留意一下。

菜鸟
2004-11-15 21:30 8楼

由于采用了三级流水技术

菜鸟
2004-11-16 03:14 9楼
[quote] 以下是引用yue_hz在2004-11-12 17:02:00的发言:程序跳转BL,R14保存的是PC中的值还是指令BL的下一条指令的值?[/quote]

LR = address of the instruction after the branch instruction

这样的问题查查手册应该很容易找得到答案。

菜鸟
2004-11-16 18:13 10楼
程序跳转BL,R14保存的是PC中的值和保存指令BL的下一条指令地址其实是一致的。
共10条 1/1 1 跳转至

回复

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