⑴ 取指从存储器装载一条指令code
⑵ 译码识别将要被执行的指令效率
⑶ 执行处理指令并将结果写会寄存器程序
PC值 = 当前程序执行位置 + 8字节view
处理器处于Thumb状态时,每条指令为2字节,因此PC值为正在执行的指令地址加4字节,便是:vi
PC值 = 当前程序执行位置 + 4字节copy
[plain] view plaincopyprint? 0x4000 ADDPC,PC,#4 ;正在被执行的指令,将地址值PC+4写入PC 0x4004 ...;正在被译码的指令 0x4008 ...;正在被取指的指令,PC=0x4008 0x400C ...;PC+4=0x400C
另外补充说明就是根据以上描述,流水线只有被指令填满时才能发挥最大效能,即每时钟周期完成一条指令的执行(仅单周期指令)。若是程序发生跳转,流水线会被清空,这将须要几个时钟才能使流水线被再次填满。所以,尽可能地少使用跳转指令能够提升程序的执行效率这样你就知道了,若是返回的时候返回PC,那么中间就有一个指令没有执行,因此用SUB pclr-irq #4。co