1. 程式人生 > >PC值=當前程式執行位置+8

PC值=當前程式執行位置+8

ARM處理器使用流水線來增加處理器指令流的速度,這樣可使幾個操作同時進行,並使處理與儲存器系統之間的操作更加流暢,連續,能提供0.9MIPS/MHZ的指令執行速度。 PC代表程式計數器,流水線使用三個階段,因此指令分為三個階段執行:

1.取指(從儲存器裝載一條指令);

2.譯碼(識別將要被執行的指令);

3.執行(處理指令並將結果寫回暫存器)。

 

 

而R15(PC)總是指向“正在取指”的指令,而不是指向“正在執行”的指令或正在“譯碼”的指令。一般來說,人們習慣性約定將“正在執行的指令作為參考點”,稱之為當前第一條指令,因此PC總是指向第三條指令。當ARM狀態時,每條指令為4位元組長,所以PC始終指向該指令地址加8位元組的地址,即:PC值=當前程式執行位置+8;

 

           週期1              週期2            週期3           週期4            週期5            週期6

PC-8    取指                譯碼              執行

PC-4                          取指              譯碼             執行

PC                                                 取指             譯碼              執行
---------------------