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必須具有某些手段來確定下一條取指指令的位址...