- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
chapter5混合编程 嵌入式教材.ppt
混合编程;ARM与THUMB的交互;ARM调用THUMB子程序;THUMB调用ARM子程序;与C的混合编程;ATPCS寄存器堆栈规则;参数传递规则;汇编程序访问C语言全局变量;例5.16 汇编程序访问C语言全局变量。
.text
.global asmsubroutine
.exten globvar @引入C语言中的全局变量globvar
asmsubroutine:
LDR R1,﹦globvar @读取globvar的地址到R1中
LDR R0,[R1] @读取变量值
ADD R0,R0,#2
STR R0,[R1]
MOV PC,LR
.end;C程序调用汇编程序的例子;例5.17下列使一个C程序调用汇编程序的串拷贝例子。
C程序为:
#include﹤stdio.h﹥
exten void *strcopy(char*d,char*s);
int main()
﹛char*srcstr﹦〝First string–source〞;
char*dststr﹦〝Second string–destination〞;
printf(〝%s\n %s\n〞,srcstr,dststr);
strcopy(dststr,srcstr);
printf(〝After copying:\n〞);
printf(〝%s\n %s\n〞,srcstr,dststr);
return(0);
﹜
ARM汇编语言模块:
.text
.global strcopy
Strcopy: @R0指向目的数据串,R1指向源数据串
LDRB R2,[R1],#1 @取字节并修改地址
STRB R2, [R0],#1 @存储字节并修改地址
CMP R2,#0 @检查是否到串尾
BNE strcopy @否,则继续
MOV PC,LR @返回
.end
其中,extern void strcopy(char*d,char*s)为汇编模块声明,strcopy(dststr,srcstr)为汇编模块调用。;汇编程序调用C程序的例子;例5.18定义汇编语言将要调用C的函数功能为返回5个参数之和,其函数原型为:
int g(int a,int b,int c,int d,int e)
﹛return a﹢b﹢c﹢d﹢e﹜
汇编语言要完成的功能使求取i﹢2i﹢3i﹢4i﹢5i的结果,程序如下:
.global_start
.text
_start:
.extern g @引入C函数g
STR LR,[SP,#–4]! @保存LR
ADD R1,R0,R0 @R1﹦2*i(第2个参数)
ADD R2,R1,R0 @R2﹦3*i(第3个参数)
ADD R3,R1,R2 @R3﹦5*i
STR R3,[SP,#–4]! @第5个参数入栈
ADD R3,R1,R1 @R3﹦4*i(第4个参数)
BL g @调用C函数g
ADD SP,SP,#4 @第5个参数出栈
LDR PC,[SP],#4 @返回
.end
程序执行结束,结果保存于寄存器R0中。
您可能关注的文档
- Chapter2 Section05 美国概况-American Economy复旦版《英美概况》 英语专业教材.ppt
- Chapter2 Section06 美国概况-American Culture复旦版《英美概况》 英语专业教材.ppt
- Chapter2 Solidworks基本的操作.ppt
- Chapter2 Terms of Commodity 国际贸易实务双语教材.ppt
- chapter2 The Design and Development Process 智能仪表培训资料.ppt
- Chapter2 商品的品质、数量和包装 国际贸易实务双语教程(教材PPT).ppt
- Chapter2-2-5th 通信系统(Communication Systems)教材.ppt
- chapter2-2寻址方式 计算机体系结构教材.ppt
- chapter2-3 指令系统的设计和优化 计算机体系结构教材.ppt
- Chapter2-3-6th 通信系统(Communication Systems)教材.ppt
- chapter5高频 教程文件.ppt
- chapter6 Economic Growth Malthus and Solow 中宏Williamson-PPT知识讲稿.ppt
- Chapter6 Language and Society 英美文化的概论 .ppt
- Chapter6 Leisure 当代英国概况 ppt 教材.ppt
- Chapter6 Solidworks设计建模实例计算器和麦克风教材课程.ppt
- chapter6 spark ignition engine 发动机原理英文PPT教程文件.ppt
- chapter6 企业股份制改制和资产重组 金融学教材.ppt
- chapter6-1 第六章 节 阵列处理机 计算机体系结构课件.ppt
- Chapter6-1-13th 通信系统(Communication Systems)教材.ppt
- Chapter6-1-14th 通信系统(Communication Systems)教材.ppt
原创力文档


文档评论(0)