Cortex-M3 三级流水线 PC寄存器取值问题?


程序执行到图中当前为止,此时PC值 = 0x080001A0,pc+4+48 = 0x080001D4。
请问为什么PC要加4?

cpu对一条指令的处理分为三个阶段:
1、取指
2、译码
3、执行
三级流水线就代表着,在执行0x0800,01A0这条指令的时候,0x080001A2处指令正在译码,而取指已经到了0x0800,01A4这里,也就是pc寄存器指向0x0800,01A4,此时pc + #48(pc + 0x30) = 0x0800,01D4

嗯嗯 明白了 多谢回复 :handshake: