如何在汇编调用c语言函数?

来源:百度知道 编辑:UC知道 时间:2024/05/28 15:00:28
我要做一个简易的计算器,用8位数码管显示。汇编程序已经写好了,C语言程序也写好了。不调用C语言显示正常,一调用C语言,数码管闪一下就不亮了。
请高手指点一下,如何在会变中加入C语言?具体例子

用汇编调用C函数,比较简单一点。
把C程序编译成obj。

在汇编语言调用C函数之前,这样声明一下:
extrn XXXX:far(其中XXXX是C写的函数,依据实际情况,可能要加一个前导下划线,写成_XXXX:far)

然后call就可以了,很好用
链接时和C的obj一起链接

很简单的,你不妨试试

一、 参数传递的基本规则(ATPCS(ARM—Thumb Procedure Call Standard))
1、 参数传递

二、汇编程序、C程序相互调用举例
1、 C程序调用汇编程序
汇编程序的设计要遵守ATPCS(ARM—Thumb Procedure Call Standard),保证程序调用时参数的正确传递。在汇编程序中使用EXPORT 伪操作声明本程序,使得本程序可以被别的程序调用。在C程序使用extern声明该汇编程序。
下面是一个C程序调用汇编程序的例子。其中汇编程序strcopy实现字符串复制功能,C程序调用strcopy完成字符串复制的工作。
//C程序
#include <stdio.h>
extern void strcopy(char *d, const char *s);
int main( )
{
const char *srcstr=”First string-source”;
char dststr[ ]=”Second string-destination”;
printf(“Before copying:\n”);
printf(“%s\n %s\n”, srcstr,dststr);
strcopy(dststr,srcstr);
printf(“After copying:\n”);
printf(“%s\n %s\n “,srcstr,dststr);
while(1) ;
}

;汇编程序
AREA Scopy,