新聞中心

arm中R0-R15寄存器的作用

作者: 時(shí)間:2016-11-09 來源:網(wǎng)絡(luò) 收藏
根據(jù)“ARM-thumb 過程調(diào)用標(biāo)準(zhǔn)”:

r0-r3用作傳入函數(shù)參數(shù),傳出函數(shù)返回值。在子程序調(diào)用之間,可以將 r0-r3 用于任何用途。

本文引用地址:http://butianyuan.cn/article/201611/317861.htm

被調(diào)用函數(shù)在返回之前不必恢復(fù) r0-r3。如果調(diào)用函數(shù)需要再次使用 r0-r3 的內(nèi)容,則它必須保留這些內(nèi)容。

r4-r11被用來存放函數(shù)的局部變量。如果被調(diào)用函數(shù)使用了這些寄存器,它在返回之前必須恢復(fù)這些寄存器的值。

r12是內(nèi)部調(diào)用暫時(shí)寄存器 ip。它在過程鏈接膠合代碼(例如,交互操作膠合代碼)中用于此角色。

在過程調(diào)用之間,可以將它用于任何用途。被調(diào)用函數(shù)在返回之前不必恢復(fù) r12。

13是棧指針 sp。它不能用于任何其它用途。sp 中存放的值在退出被調(diào)用函數(shù)時(shí)必須與進(jìn)入時(shí)的值相同。

r14是鏈接寄存器 lr。如果您保存了返回地址,則可以在調(diào)用之間將 r14 用于其它用途,程序返回時(shí)要恢復(fù)

r15是程序計(jì)數(shù)器 PC。它不能用于任何其它用途。

注意:在中斷程序中,所有的寄存器都必須保護(hù),編譯器會(huì)自動(dòng)保護(hù)R4~R11



關(guān)鍵詞: armR0-R15寄存

評論


技術(shù)專區(qū)

關(guān)閉