ARM 处理器 3 级流水线:取指->译码->执行,这三级流水线循环执行。
比如当前正在执行第一条指令的同时也对第二条指令进行译码,第三条指令也同时被取出存放
在 R15(PC)中。我们喜欢以当前正在执行的指令作为参考点,也就是以第一条指令为参考点,
那么 R15(PC)中存放的就是第三条指令,换句话说就是 R15(PC)总是指向当前正在执行的指令
地址再加上 2 条指令的地址。对于 32 位的 ARM 处理器,每条指令是 4 个字节,所以:
R15 (PC)值 = 当前执行的程序位置 + 8 个字节。
综上,可以理解为三级中的取指过程就包含了给PC寄存器赋下下一条指令地址的过程,所以PC寄存器其实保存的是以当前为参考点,下下一条指令的地址信息。