第六讲-C与汇编语言混合编程重点.ppt

第六讲-C与汇编语言混合编程重点

第六讲 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。 寄存器 别名 特殊名 使用规则 R0 a1 ? 参数/结果/scratch寄存器1 R1 a2 ? 参数/结果/scratch寄存器2 R2 a3 ? 参数/结果/scratch寄存器3 R3 a4 ? 参数/结果/scratch寄存器4 R4 v1 ? ARM状态局部变量寄存

文档评论(0)

1亿VIP精品文档

相关文档