ATPCS中各寄存器的使用规则及名称

S3C2440属于ARM9,

一般在ARM系列的soc中都会有ATPCS这十五个寄存器。

下面我们主要讲解一下这十五个寄存器的名称和用法。

先看下名字:

ATPCS中各寄存器的使用规则及名称

再看下这些寄存器的用法和功能:

特殊寄存器:

r0-r3:用作传入函数参数,传出函数返回值。在子程序调用之间,可以将r0-r3用于任何用途。被调用函数在返回之前不必恢复r0-r3。如果调用函数需要再次使用r0-r3内容,则它必须保留这些内容。

r4-r11:用来存放函数的局部变量。如果被调用函数使用了这些寄存器,他在返回之前必须恢复这些寄存器的值。

r12:是内部调用暂寄存器ip。它在过程链接胶合代码(交互操作胶合代码)中用于此角色。

r13:是栈指针sp。他不能用于其他任何用途。sp中存放的值在退出被调用函数时必须与进入时相同。

r14:是链接寄存器lr。如果保存了返回地址,则可以在调用之间将r14用于其他用途。程序返回时要恢复。

r15:是程序计数器pc。它不能用于任何其他用途。

注:在中断程序中,所有的寄存器都必须保护,编译器会自动保护r4~r11