我想在MPLABX的c代码中使用汇编为PIC编写的程序。有没有办法可以做到这一点。我在互联网上搜索过但找不到任何有用的信息。
答案 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传输。更复杂的参数列表 可能需要不同的寄存器,并应在手写的装配中注意 遵循指南。