ARM中pc lr暫存器

2021-07-14 17:28:34 字數 1069 閱讀 4691



pc(程式計數器)  = windows 中 eip

解析:

處理器要執行的程式(指令序列)都是以二進位制**序列方式預儲存在計算機的儲存器中,處理器將這些**逐條

地取到處理器中再解碼、執行,以完成整個程式的執行。為了保證程式能夠連續地執行下去,cpu必須具

有某些手段來確定下一條取指指令的位址.程式計數器(pc)正是起到這種作用,所以通常又稱之為『指令計數器』

。cpu總是按照pc的指向對指令序列進行取指、解碼和執行,也就是說,最終是pc 決定了程式執行流向。故而,程

序計數器(pc )屬於特別功能暫存器範疇,不能自由地用於儲存其他運算資料.

在程式開始執行前,將程式指令序列的起始位址,即程式的第一條指令所在的記憶體單元位址送入pc,cpu 按照 pc

的指示從記憶體讀取第一條指令(取指)。當執行指令時,cpu自動地修改pc 的內容,即每執行一條指令pc增加乙個

量,這個量等於指令所含的位元組數(指令位元組數),使 pc總是指向下一條將要取指的指令位址。由於大多數指令都

是按順序來執行的,所以修改pc 的過程通常只是簡單的對pc 加「指令位元組數」。

當程式轉移時,轉移指令執行的最終結果就是要改變pc的值,此pc值就是轉去的目標位址。處理器總是按照pc

指向取指、解碼、執行,以此實現了程式轉移。

r14(lr)連線暫存器

r14稱為子程式鏈結暫存器lr(link register),當執行子程式呼叫指令(bl)時,r14可得到r15(程式計數器pc)的備

份.在每一種執行模式下,都可用r14儲存子程式的返回位址,當用bl或blx指令呼叫子程式時,將pc的當前值複製給

r14,執行完子程式後,又將r14的值複製回pc,即可完成子程式的呼叫返回。以上的描述可用指令完成。

執行以下任意一條指令:

mov pc,lr

bx lr

在子程式入口處使用以下指令將r14存入堆疊:

stmfd sp!,

對應的,使用以下指令可以完成子程式返回:

ldmfd sp!,

r14也可作為通用暫存器。

ARM暫存器整理

arm有37個暫存器,31個通用暫存器 r0 r15 32位 和6個狀態暫存器 1.通用暫存器 使用者模式 系統模式 特權模式 中止模式 未定義指令模式 外部中斷模式 快速中斷模式。可分為 未備份暫存器r0 r7 備份暫存器 r8 r14 程式計數器 pc r15 注 r0 r7在所有模式下指的同一...

ARM暫存器介紹

arm微處理器支援7種執行模式,分別為 1.使用者模式 usr arm處理器正常的程式執行狀態 2.快速中斷模式 fiq 用於高速資料傳輸或通道管理 3.外部中斷模式 irq 用於通用的中斷處理 4.管理模式 svc 作業系統使用的保護模式 5.資料訪問終止模式 abt 當資料或指令預取終止時進入該...

arm暫存器別名

apcs,arm 過程呼叫標準 arm procedure call standard 提供了緊湊的編寫例程的一種機制,定義的例程可以與其他例程交織在一起。最顯著的一點是對這些例程來自 沒有明確的限制。它們可以編譯自 c pascal 也可以是用組合語言寫成的。apcs 對我們通常稱為 r0 到 r...