马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
为了保证程序调用时参数的正确传递,汇编语言程序的设计要遵守ATPCS。在汇编语言程序中使用EXPORT伪操作来声明,使得本程序可被其他程序调用。同时,在C语言程序调用该汇编语言程序之前,需要在C语言程序使用extern关键词来声明该汇编语言程序。在示例中,汇编语言程序strcopy完成字符串复制功能,C语言程序调用strcopy完成字符串的复制工作。 C语言程序调用汇编语言程序完成字符串拷贝。 C语言源程序: #include <stdio.h> extern void strcopy(char *d,const char *s) ;用extern声明一个函数为外部函数 ;可被其他文件中的函数调用 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(srcstr,dststr); ;调用汇编函数strcopy() printf("After copying:\n"); printf("%s\n%s\n",srcstr,dststr); return(0); } 汇编语言源程序: AREA SCopy,CODE,READONLY EXPORT strcopy ;用EXPORT伪操作声明该变量可被其他文件引 ;用,相当于声明了一个全局变量 Strcopy ;R0指向目标字符串,R1指向源字符串 LDRB R2,[R1],#1 ;字节加载,并更新地址 STRB R2,[R0],#1 ;字节保存,并更新地址 CMP R2,#0 ;检测R2是否等于0 BNE strcopy ;若条件不成立,则继续执行 MOV PC,LR ;从子程序返回 END 凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网 |