ARM 程式計數器 R15

2021-10-01 09:18:31 字數 615 閱讀 1328

8 是指 8 個位元組,是兩條 arm 指令的長度。

arm 是 3 級流水線:取指,解碼,執行。

由於 arm7 指令總是以字為單位,所以 r15 暫存器的最低兩位總是為 0。

r15 值的改變將引起程式執行順序的改變。

向 r15 內寫入乙個值,程式將跳轉到以 r15 值為位址的程式執行

下面講一下上面**段中的公式怎麼推出來的:

arm7 架構採用了乙個 3 段的流水線:

取指:將指令從記憶體中取出來。

解碼:操作碼和運算元被解碼以決定執行什麼功能。

執行:執行已解碼的指令。

由上述**指令流程我們可以很容易得出下面這幅流程圖:

從第三列我們可以看出來 pc 指向的正在取指的指令是第三條指令,其位址是 ox00000008,而正在執行的指令是第一條指令,其位址是 0x00000000。很容易看出相差 8。

繼續介紹一下 arm 體系結構的儲存器格式

arm 體系結構將儲存器看作是從零位址開始的位元組線性組合。從零位元組到三位元組放置第乙個儲存的字資料,從第四個位元組到第七個位元組放置第二個儲存的字資料,依次排列。作為 32 位的微處理器,arm 體系結構所支援的最大定址空間為 4gb (232 2^2

32位元組)

程式計數器

馮 諾伊曼計算機體系結構的主要內容之一就是 程式預儲存,計算機自動執行 處理器要執行的程式 指令序列 都是以二進位制 序列方式預儲存在計算機的儲存器中,處理器將這些 逐條地取到處理器中再解碼 執行,以完成整個程式的執行。為了保證程式能夠連續地執行下去,cpu必須具有某些手段來確定下一條取指指令的位址...

程式計數器

程式計數器是用於存放下一條指令所在單元的位址的地方。微控制器及組合語言中常稱作pc program counter 為了保證程式 在作業系統中理解為程序 能夠連續地執行下去,cpu必須具有某些手段來確定下一條指令的位址。而程式計數器正是起到這種作用,所以通常又稱為指令計數器。在程式開始執行前,必須將...

程式計數器 PC

馮 諾伊曼計算機體系結構的主要內容之一就是 程式預儲存,計算機自動執行 處理器要執行的程式 指令序列 都是以二進位制 序列方式預儲存在計算機的儲存器中,處理器將這些 逐條地取到處理器中再解碼 執行,以完成整個程式的執行。為了保證程式能夠連續地執行下去,cpu必須具有某些手段來確定下一條取指指令的位址...