- 1
- 0
- 约4.51千字
- 约 19页
- 2016-11-22 发布于浙江
- 举报
第六讲_C与汇编语言混合编程
C与汇编语言混合编程 ATPCS介绍 内嵌汇编 C和ARM汇编 程序间相互调用 一、ATPCS介绍 ATPCS(ARM-Thumb Produce Call Standard)是ARM程序和Thumb程序中子程序调用的基本规则,目的是为了使单独编译的C语言程序和汇编程序之间能够相互调用。这些基本规则包括子程序调用过程中寄存器的使用规则、数据栈的使用规则和参数的传递规则。 寄存器的使用规则 子程序间通过寄存器R0~R3来传递参数,这时,寄存器R0~R3可以记作A1~A4。 在子程序中,使用寄存器R4~R11来保存局部变量。这时,寄存器 R4~R11可以记作V1~V8。在Thumb程序中,通常只能使用寄存器R4~R7来保存局部变量 。 寄存器R12用作子程序间的scratch寄存器(用于保存SP,在函数返回时使用该寄存器出栈),记作ip。 寄存器R13用作数据栈指针,记作sp。 寄存器R14称为链接寄存器,记作lr。 寄存器R15是程序计数器,记作pc。 数据栈的使用规则 根据堆栈指针指向位置的不同 和增长方向的不同可以分为以下4种数据栈 : FD (Full Descending) 满递减 ED (Empty Descending)空递减 FA (Full Ascending) 满递增 EA (Empty
原创力文档

文档评论(0)