ARM中的暫存器R0 R15

2021-08-18 10:50:01 字數 741 閱讀 1607

根據「arm-thumb 過程呼叫標準」:

r0-r3   

用作傳入函式引數

,傳出函式返回值。在子程式呼叫之間,可以將 r0-r3 用於任何用途。

被呼叫函式在返回之前不必恢復 r0-r3。如果呼叫函式需要再次使用 r0-r3 的內容,則它必須保留這些內容。

r4-r11

被用來存放函式的區域性變數。如果被呼叫函式使用了這些暫存器,它在返回之前必須恢復這些暫存器的值。

r12是內部呼叫暫時暫存器 ip。它在過程鏈結膠合**中用於此角色。

可以將它用於任何用途。被呼叫函式在返回之前不必恢復 r12。 

在過程呼叫之間,可以將它用於任何用途。被呼叫函式在返回之前不必恢復 r12。

r13是棧指標sp。它不能用於任何其它用途。sp 中存放的值在退出被呼叫函式時必須與進入時的值相同。

r14r15         是程式計數器 pc。它不能用於任何其它用途。

在arm公司文件中有說明,r12已經不再是乙個general register,它被稱為它被稱為intra-procedure-call scratch register,我們在使用c/c++內嵌彙編時,r12的值很可能被gcc在

鏈結過程改寫掉,對於非專業寫彙編的我們,注意別使用r12做資料暫存即可。

關於r12的特殊說明: "procedure call standard for the arm architecture", 19th january, 2007, richard earnshaw.

arm中R0 R15暫存器的作用

根據 arm thumb 過程呼叫標準 r0 r3 用作傳入函式引數,傳出函式返回值。在子程式呼叫之間,可以將 r0 r3 用於任何用途。被呼叫函式在返回之前不必恢復 r0 r3。如果呼叫函式需要再次使用 r0 r3 的內容,則它必須保留這些內容。r4 r11 被用來存放函式的區域性變數。如果被呼叫...

arm暫存器之r14,r15

1 pc是程式計數器,儲存將要執行的指令位址 的值被儲存到lr中 mov lr,pc 3 ir是指令暫存器,用來儲存當前正在執行的一條指令。當執行一條指令時,先把它從記憶體取到資料暫存器 dr 中,然後再傳送至ir。區別 1 ir是微體系結構概念 什麼是微體系結構?就是程式設計師看不到,但硬體中確實...

ARM中pc lr暫存器

pc 程式計數器 windows 中 eip 解析 處理器要執行的程式 指令序列 都是以二進位制 序列方式預儲存在計算機的儲存器中,處理器將這些 逐條 地取到處理器中再解碼 執行,以完成整個程式的執行。為了保證程式能夠連續地執行下去,cpu必須具 有某些手段來確定下一條取指指令的位址.程式計數器 p...