ATPCS 寄存器使用规则

来源:互联网 发布:软件安全 编辑:程序博客网 时间:2024/04/30 22:41

这里只是记录了些常用的,具体的请参考原文:

http://blog.csdn.net/pony_maggie/archive/2010/01/29/5270203.aspx

 

ATPCS是ARM-Thumb Procedure Call Standard 的缩写, 也就是ARM,Thumb的程序调用标准.

 

1 对通用寄存器的一些说明.

r0~r3一般用来传递函数的参数,r4~r7则用来放置局部变量. 而r12~r15则可以有特别的用途.

2 参数调用

*  小于32位的参数值会被自动扩展为32位.

*  64位的参数被当成两个32位数.

前四个参数放在r0~r3中传递,如果多于四个参则按相反的顺序进栈保存,所谓相反的顺序是指靠前参数后进栈.

3 子程序返回

*  32位的结果放r0

*  64位可通过r0, r1返回.