arm中R0-R15寄存器的作用
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
評論