arm 流水线和pc值
生活随笔
收集整理的這篇文章主要介紹了
arm 流水线和pc值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ?“然后PC=PC+1”,老師經常這么說。
? ? ? ?這不完全正確,PC自增一的情況指出現在無流水(non-pipeline)的情況下,這個時候取指,譯碼,執指都是順序執行的而在有流水的情況下就比較復雜了這里用arm7為例。
? ? ? ?流水線使用三個階段,因此指令分為三個階段執行:1.取指(從存儲器裝載一條指令);2.譯碼(識別將要被執行的指令);3.執行(處理指令并將結果寫回寄存器)。
? ? ? ?而R15(PC)總是指向“正在取指”的指令,而不是指向“正在執行”的指令或正在“譯碼”的指令。一般來說,人們習慣性約定將“正在執行的指令作為參考點”,稱之為當前第一條指令,因此PC總是指向第三條指令。當ARM狀態時,每條指令為4字節長,所以PC始終指向該指令地址加8字節的地址,即:PC值=當前程序執行位置+8。
總結
以上是生活随笔為你收集整理的arm 流水线和pc值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 诺依曼体系结构、哈佛体系结构与改进型哈佛
- 下一篇: ARM中C和汇编混合编程及示例