- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C和汇编语言混合编程
7.1 ARM C/C++编译器
7.2 在C/C++程序中内嵌汇编指令
7.3 从汇编程序中访问C程序变量
7.4 汇编程序、C程序及C++程序相互调用
7.5 嵌入式C编程;7.1 ARM C/C++编译器;7.2 在C/C++程序中内嵌汇编指令;7.2 在C/C++程序中内嵌汇编指令;7.2 在C/C++程序中内嵌汇编指令;7.2 在C/C++程序中内嵌汇编指令;7.2 在C/C++程序中内嵌汇编指令;7.3 从汇编程序中访问C程序变量;7.3 从汇编程序中访问C程序变量;7.3 从汇编程序中访问C程序变量;C程序与汇编程序互相调用规则 ;ATPCS中各寄存器的使用规则及其名称 ;ATPCS中各寄存器的使用规则及其名称;7.4 汇编程序、C程序及C++程序相互调用;C程序调用汇编程序(调用汇编的C 函数):
#include stdio.h
extern void strcopy(char *d,const char *s); //声明外部函
//数,即要调用的汇编子程序
int main(void)
{
const char *srcstr=“First string-source”;
char dstsrt[] =“Second string-destination”;
printf(“Before copying:\n”);
printf(“’%s’\n ‘%s\n,”srcstr,dststr); //显示源字符串和目
//标字符串的内容
strcopy(dststr,srcstr); //调用汇编子程序,R0=dststr
//R1=srcstr
printf(“After copying:\n”)
printf(“’%s’\n ‘%s\n,”srcstr,dststr); //显示strcopy 复制
//字符串结果
return(0);
};C程序调用汇编程序(被调用汇编子程序):
AREA SCopy,CODE,READONLY
EXPORT strcopy ;声明汇编程序strcopy,以便外部
;程序引用
strcopy ;R0 为目标字符串的地址
;R1 为源字符串的地址 ;
LDRB R2,[R1],#1 ;读取字节数据,源地址加1
STRB R2,[R0],#1 ;保存读取的1 字节数据,目标地
;址加1
CMP r2,#0 ;判断字符串是否复制完毕
BNE strcopy ;没有复制完毕,继续循环
MOV pc,lr ;返回
END;7.4 汇编程序、C程序及C++程序相互调用;7.4 汇编程序、C程序及C++程序相互调用;汇编调用C 程序的汇编程序
AREA sample, CODE,READONLY
IMPORT sum5 ;声明C程序sum5()
EXPORT sample ;声明可被外部程序引用
ENTRY
STR LR,[SP,#-4]! ;保存返回地址
MOV R0,#1 ;设置参数1
MOV R1,#2 ;设置参数2
MOV R2,#3 ;设置参数3
MOV R3,#4 ;设置参数4
MOV R4,#5 ;参数5通过数据栈传递
STR R4,[SP,#-4]!;
汇编调用C 程序的汇编程序
BL sum5 ;调用sum5(),结果从R0返回
ADD SP,SP,#4 ;调整SP,准备返回
LDR PC,[SP],#4
END;7.5 嵌入式C编程;7.5 嵌入式C编程;3、条
您可能关注的文档
- 2015-2020年全球汽车零部件和构件用橡胶成型市场.pdf
- 2015-2016东丽区九年级数学(上)期中试卷和答案.pdf
- 2015.4初三一模科学试题卷和答卷.pdf
- 20150301专题 生活和哲学.ppt
- 20150509高效节能环保工民和特殊照明设备、配电设备生产(报批稿)-批注.doc
- 2015【和名师对话】课标版高中化学选修4练习:4.4金属电化学腐蚀和防护课时作业22.doc
- 2015.12.29市场营销试题和答案汇总.doc
- 2015-2016学年高中数学人教A版选修1-2:第1章 统计案例 1.1 回归分析基本思想和其初步应用.ppt
- 2015—2016学年度北师大附属实验中学第二学期高二年级物理期中试卷和答案.pdf
- 2015中国移动劳务派遣转正试题和答案3.pdf
- 基于小学生需求的小学运动会组织模式创新研究教学研究课题报告.docx
- 小学英语绘本教学与主教材融合的写作教学策略探讨教学研究课题报告.docx
- 草莓泡酒选啥酒?42度清香型最佳,果香四溢超好喝!.docx
- 扫黄打非宣传教育课件.pptx
- 初中物理人工智能辅助教学:用户需求分析及多模态数据采集模型教学研究课题报告.docx
- 初中政治教师教学画像在教育资源精准投放中的应用与反思教学研究课题报告.docx
- 扬声器的介绍.pptx
- 高中体育教学中生成式AI跨区域教研协作的创新探索教学研究课题报告.docx
- 跨平台技术在人工智能教育平台移动应用开发中的兼容性与教学互动研究教学研究课题报告.docx
- 扬州中学历史介绍.pptx
文档评论(0)