试验六 (混合编程).docVIP

  • 58
  • 0
  • 约1.43千字
  • 约 3页
  • 2018-02-04 发布于河北
  • 举报
试验六 (混合编程)

试验六 C语言与汇编语言混合编程 注意:本实验在模拟环境下进行,请不要打开试验箱电源!! 试验目的: 掌握ADS开发环境下C语言和汇编语言编程的APCS规则; 试验原理 ARM过程调用标准APCS提供了紧凑编写程序的一种机制。如果ARM程序全部用汇编语言完成,则不必要求全部实现APCS,但如果要求汇编语言和c语言混合编程,则必须遵守APCS规则。 对于程序员来说,最重要的是在函数调用时,参数及返回值是如何传递的,如何在汇编语言中调用C语言,如何在c语言中调用汇编语言。请记住一下规则: 参数不超过4个时,可以使用寄存器R0~R3来传递参数,当参数超过4个时,还可以使用数据栈来传递参数。 结果为一个32位整数时,可以通过寄存器R0返回 结果为一个64位整数时,可以通过寄存器R0和R1返回,依次类推。 寄存器R13用于数据栈指针,记作SP。寄存器SP在进入子程序时的值和退出子程序时的值必须相等。 寄存器R14称为链接寄存器,记作LR。它用于保存子程序的返回地址。 C语言调用汇编程序规则: 汇编程序的设置要遵循APCS 规则,保证程序调用时参数的正确传递。 在汇编程序中使用EXPORT 伪指令声明本子程序,使其它程序可以调用此子程序。 在C 语言程序中使用extern 关键字声明外部函数(声明要调用的汇编子程序),即可调用此汇编子程序 汇编程序调用C程序规则: 汇编程序的设置要遵循A

文档评论(0)

1亿VIP精品文档

相关文档