在mplab中合并汇编和C.

时间:2014-03-09 05:10:07

标签: c assembly mplab

我想在MPLABX的c代码中使用汇编为PIC编写的程序。有没有办法可以做到这一点。我在互联网上搜索过但找不到任何有用的信息。

1 个答案:

答案 0 :(得分:2)

如果您使用的是16位PIC,请参阅MPLAB® C30 User’s Guide中的 8.3 MIXING ASSEMBLY LANGUAGE和C VARIABLES AND FUNCTIONS

  

示例8-2:在C中调用汇编函数

   /*
    ** file: call1.c
    */
    extern int asmFunction(int, int);
    int x;
    void main(void)
    {
        x = asmFunction(0x100, 0x200);
    }
     

汇编语言函数将其两个参数相加并返回结果。

    ;
    ; file: call2.s
    ;
      .global _asmFunction
    _asmFunction:
      add w0,w1,w0
      return
     .end
     

第4.12.2节“返回值”中详细介绍了传入C的参数。在前面   例如,两个整数参数在W0和W1寄存器中传递。该   整数返回结果通过寄存器W0传输。更复杂的参数列表   可能需要不同的寄存器,并应在手写的装配中注意   遵循指南。