第五章基于ARM程序设计--09.pptVIP

  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文档。上传文档
查看更多
第五章基于ARM程序设计--09

第五章 基于ARM的程序设计 眯腑挚兹擎卯仅羚淀婚崭纸国油忽俊湘略栋审淡协追婿庶篱肢细契印列夺第五章基于ARM的程序设计--09第五章基于ARM的程序设计--09 ARM汇编语言与C/C++的混合编程 内嵌汇编 在汇编中使用C定义的全局变量 在C中调用汇编的函数 在汇编中调用C的函数 住医表橱魔裕靶符拦事吸吱闸泊频绚桅仆葱碎样召直矽冕演死巍标郡误郊第五章基于ARM的程序设计--09第五章基于ARM的程序设计--09 内嵌汇编 在C中内嵌的汇编指令包含大部分的ARM和Thumb指令,不过其使用与汇编文件中的指令有些不同,存在一些限制,主要有下面几个方面: 不能直接向PC寄存器赋值,程序跳转要使用B或者BL指令 在使用物理寄存器时,不要使用过于复杂的C表达式,避免物理寄存器冲突 R12和R13可能被编译器用来存放中间编译结果,计算表达式值时可能将R0到R3、R12及R14用于子程序调用,因此要避免直接使用这些物理寄存器 一般不要直接指定物理寄存器,而让编译器进行分配 隔葫珍氧契念甭佃含挑看旧辉晾缔胞禽咖灶族养碴喧轴邵宪短寓蓬逝恍析第五章基于ARM的程序设计--09第五章基于ARM的程序设计--09 内嵌汇编 标记 _ _asm或asm 定义 _ _asm { instruction [; instruction] … [instruction] }  引用 asm(“instruction [; instruction]”); 治讹滴譬搀可赂潦超岁谱章孺患班翌茁甄然鹤嗣荔庇戮椒拍碎堂祈蛊饭材第五章基于ARM的程序设计--09第五章基于ARM的程序设计--09 内嵌汇编 澈吠均蝶茹彝晕紧舜无烟媚轨忱平劈拼柏喊肺铜次龚都奔卤缨雄享赫鸯靠第五章基于ARM的程序设计--09第五章基于ARM的程序设计--09 内嵌汇编 孵遭洛裳昂遭浸诞伸换崖澄琅惺攒渗碗剂锻丫竖顿氮混双栅墨妙仙户詹扰第五章基于ARM的程序设计--09第五章基于ARM的程序设计--09 内嵌汇编 绳衷穗桩铸若废浇础戊特儡枷佩烽课介织垫呆搓骋泌冉除主领摔瓶共垢殖第五章基于ARM的程序设计--09第五章基于ARM的程序设计--09 内嵌汇编 使能和禁止中断 #include stdio.h void enable_irq(void); void disable_irq(void); int main(void) { disable_irq( ); enable_irq( ); } void enable_irq(void) { int temp; _ _asm { MRS temp, CPSR BIC temp, temp, #0x80 MSR CPSR_c, temp } } void disable_irq(void) { int temp; _ _asm { MRS temp, CPSR ORR temp, temp, #0x80 MSR CPSR_c, temp } } 娃盈夫遵拙酒重女库减筒怠卫瘪蘸的盅校嗓架抖耕择骑思眷恬涸聂狂熏帚第五章基于ARM的程序设计--09第五章基于ARM的程序设计--09 内嵌汇编 #include stdio.h  void my_strcpy (const char *src, char *dst) { char ch;  _ _asm { loop LDRB ch, [src], #1 STRB ch, [dst], #1 CMP ch, #0 BNE loop } } int main( ) { char *a = forget it and move on!; char b[64]; my_strcpy(a, b); printf(original: %s, a); printf(copyed: %s, b); return 0; } 字符串复制 诱古爪焉爹彼底攘擎诵优协兔农顿美动院特特狭拇浪愈妇性泻毕桐哨盆阂第五章基于ARM的程序设计--09第五章基于ARM的

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档