找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 58|回复: 6
打印 上一主题 下一主题

C语言程序调用汇编语言程序

[复制链接]

157

主题

597

帖子

1239

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1239
跳转到指定楼层
1#
发表于 2016-8-11 14:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

214

主题

642

帖子

1658

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1658
2#
发表于 2016-8-11 14:35 | 只看该作者
支持一下,很不错哦!

165

主题

528

帖子

1255

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1255
3#
发表于 2016-8-11 14:45 | 只看该作者
资源多,学习不止步,共同进步

162

主题

614

帖子

1255

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1255
4#
发表于 2016-8-12 10:56 | 只看该作者
谢谢楼主,一步步来,学习中……

161

主题

526

帖子

1209

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1209
5#
发表于 2016-8-12 11:47 | 只看该作者
楼主辛苦了!

156

主题

559

帖子

1202

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1202
6#
发表于 2016-8-15 11:45 | 只看该作者
支持一下,很不错哦!

171

主题

616

帖子

1306

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1306
7#
发表于 2016-8-16 10:13 | 只看该作者
谢谢O(∩_∩)O哈哈~谢谢O(∩_∩)O哈哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-9-20 12:12 , Processed in 0.056912 second(s), 31 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表