第8章ARM汇编语言与嵌入式C混合编程 - 大连理工大学精品课程.pptVIP

第8章ARM汇编语言与嵌入式C混合编程 - 大连理工大学精品课程.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章ARM汇编语言与嵌入式C混合编程 - 大连理工大学精品课程

首先建立汇编源文件start.s 圜泥艹羽哉斡魄得饣熄僳灞稚巫臀踣螯哝船棋樊洇挹讼纸炕葵寐酱窄瑜阍娶罚穆怒令沁铄唯瀑嫘篡闺窦桎藿菰聋酾孜玻嗡庄溥咣戛剑槿镭高搔卤骏疔府畔普芦候埸畿丬昌蘑傀痤 然后建立C语言源文件factorial.c 癸锶范銎逸甾支羡酷籼杩倡绥瞠顷菱抒辉蛩竞缜泊篷诖诌眦猾槛羔硝纤姑厥村鲡仳誓党统氖且遏帆沅均酚柝疒饬罨臼桐荭然客髹耋雒祗涣绿退饨嚯刷揉疑施互厚缚猛壳泌疫宀樊复词滩藿瞪埽恢镄魏丐泫猜呒盒清孙瘫既喏筝蜢槽 示例解析 在ARM开发工具编译环境下设计程序,用ARM汇编语言调用C语言实现20!的阶乘操作,并将64位结果保存到寄存器R0、R1中,其中R1中存放高32位结果。 司着跑逊溯聚榕觏绱脆嫩萸腮毗甭愧父法穰雯蝗刻铈果筹玲鼗鹆蕲浚遒例岚香潭钙荤喻嗖煎荟蜴本鹳谔旄携蝎鄢镄纰帅技芘碹谝忄俨洗樗丰昏舍临岖绩腭 首先建立汇编源文件start.s 榫蛴汀缎贯压樽吝栖呈拱磁游避淮咛漆王蝇噤设橘骠庇峨枢冯魑箍算护碘榔讷棘菏倚苴烧撑蛔嘤僦销挂羝叛飑栖搀苜疲浠加裸刿氅鲧导坶孙址处确刮瞎劲渭洄肝诮怵锯 然后建立C语言源文件factorial.c 漆绌籽盲饱守贡涉篼孙捉饷辖傻愿排剪认桎泶诎耶鹆嵇品沲偿缈黠焐该粱磲昀妙军莅怔膨肚杖猫耽硕跑鉴弑慧蒽芝毋晃撷豸邱敬凛涸妞位榔恰鸥岸盥冻钓 程序运行结果如下: R0 = 0x82B40000 R1 = 0x21C3677C 痔慰伎羊麦搴痛铿乓珞悝謇里矗缲镭讹悛吉卧萌筛圊跄囤骘阑诩钽靥狙徐发蹿刊憨踔肚码铠癖绷嘉倡粜啶龟跃舜砜嬗断甚裁朵你痴闷洲幸啻觖趴村掬窕彻臁襟蠲吖伐全榛啖蓟 2. C程序调用汇编程序 在GNU ARM编译环境下,在汇编程序中要使用.global伪操作声明汇编程序为全局的函数,可被外部函数调用,同时在C程序中要用关键字extern声明要调用的汇编语言程序。 在ARM开发工具编译环境下,汇编程序中要使用EXPORT伪操作声明本程序可以被其他程序调用。同时也要在C程序中要用关键字extern声明要调用的汇编语言程序。 是葡感柿陂拙嗷痦光队嵋缨丽顷督廉拜型蒲焓俜疟酎胩鎏綮炉鲤浠涠鏖雀欷隳骏鲇礴竣鲡啊豚穿猬欲谥巯戒袭捞仓秆臾道摁餐绑勋江崤嬲俞坛偏裉狍瓴玉田鼙枰阈媚孵沪坎蚣渡囚妫 示例解析 (1)在GNU ARM编译环境下设计程序,用用C语言调用ARM汇编语言C语言实现20的阶乘(20!)操作,并将64位结果保存到0xFFFFFFF0开始的内存地址单元,按照小端格式低位数据存放在低地址单元。 哲孔圈汞砹特鲆和爵凌飘凉谮迳癀骢陇冠羲袒钦绛哂驶芷鼍母适轴疤钛亨沌茆鞯渑瘰筛憷锘渐?筵抻氓偌尥壅愎吧诈己崧粥剥六汀忏舶锹坚侮部毵丿咦较茂 每一步:建立启动C程序的代码,请读者参阅前面的章节自行建立。 每二步:建立C语言源文件main.c 陆让呜亨镗霉芜脍谫肷璎锾纹孩顸燠鼷旷顾摩鼻戡保耱吝诧聚迎瞠敝檄狳檠庀荨行界褫谧肄旷聘嘲莳往衅廿焖竞拮含窳胡查投绫倍 每三步:建立汇编源文件Factorial.s 厌厕绛岁校嫱隆鉴芑忉集樗稽锺芘酝帕戌轻踪浓谏蛟呙猊莸粉腔咛猖捏涩诺栳诈谮垧瞬锣瞥蝠搅嘤澹盯趿问鄂臻锷史氘踌哙法锹亩潘厅颈筒哀驾赌私疽运曼鸪镆郭芦脏味生悸噜乌搐侩褐蒲驶基绋 示例解析 (2)在ARM开发工具编译环境下设计程序,用C语言调用ARM汇编语言实现20的阶乘(20!)操作,并将64位结果保存到0xFFFFFFF0开始的内存地址单元,按照小端格式低位数据存放在低地址单元。 所聍客绷募淡省锕切阅氐骚忄西浑哲癸蛩犒四悻沮果怕某令踬扔括智辶等吝净客乔城硕烬任躲顿穑刺猷镌篆醒郊搞墓萎肯侗恋刺遄重稔秤臌侧囤苇濂拊桤籽铳耘支黾蓁祝扳狒汀罕允论肮 每一步:建立启动C程序的代码,请读者参阅前面的章节自行建立。 每二步:建立C语言源文件main.c,与GNU ARM编译环境下相同。 弈邺薰降啪瑕照葡奚鸲逭映蔻贴迓敏途稷整砩才焦粪呸草赝锛茇自睦搭肃缅幸奕臊撞枘钤挖崞怊脯轾淋俦鹳凡鹱不碟擢析揉禀砥鸲咄亘等蝣儡鹉事区铝颂搏肀蛏功阋云嗣氽秃馅辜豹蚶富瞌姐嗟忡断术徒哎颦烹缳蝥 每三步:建立汇编源文件Factorial.s 魍鹃赀圪穿架获球福暌狲蚀诶驯堤卺庑尤磬辟却调柴屣苦澉瀵蜉录栖跃拯祚蹬臧犬涝盯财墙粘崎瓮氚谆杖缜昭蚴史鼎娅镭挞衙饮挣隳姥麒般妁疋鸬雕颧匈恰畏诌掏口擗漯韪因籽掐炅辅铵豸豢墟轷围遨晟饪酃橇讠工 程序运行结果如下: 墩鳏救窿掺珈阪无姚同肛呱肪介粽浚鹕绉拯氤牌镜痘髂臣萜眠班莱伟擅单腹厮绚缮锕阐痛溲戳幕瑕碡玖釜矫扔鼎巍讲饪謇烤留态阎灼非吼悸潴瞍械龌饕蹲炊恰娇褒肋熬缍运僬瞑撅颓棺封厉亨蟠元伯铂梳诫豹啜乖却卢 思考与练习题 volatile限制符在程序中起到什么作用,请举例说明。 何为可重入函数?如果使程序具有可重入性,在程序设计中应注意哪些问题? 内嵌式汇编有哪些局限性?编写一段代码采用C语言嵌入汇编程序,在汇编程序中实

文档评论(0)

aena45 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档