- 1、本文档共81页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
ARMC程序优化设计
高效的C程序设计本节通过一系列例子研究编译器如何把C代码转换成ARM汇编代码。以帮助程序员区分快速和慢速的C代码,进而指导程序员进行C程序设计。
ARMC程序设计优化编译器的特性数据类型对程序效率的影响循环结构对程序效率的影响指针对程序效率的影响0203040105边界对齐问题★★★
编译器的特性1代码优化:时间优化、空间优化代码优化与程序的可读性:矛盾需要优先优化的代码对象:频繁使用的代码
例1voidmemclr(char*data,intN){for(;N0;N--){*data=0;data++;}}dataN清除从指针data开始的N个字节空间
例1(续)清除从指针data开始的N个字节空间问题:编译器不知道N是否为0。编译器不知道data是否4字节对齐。编译器不知道N是否为4的倍数voidmemclr(char*data,intN){for(;N0;N--){*data=0;data++;}}
结论编译器是保守的:必须假定N的所有可能值必须假定data所有可能的边界值
编写高效C代码的要求了解哪些方面编译器是保守的了解编译器对应的处理器体系结构
数据类型对编程效率的影响2ARMv8-A架构之前,ARM是32位RISC机器Load/store不同的C数据类型,效率不同。
局部变量类型尽量采用int、long类型仅使用char、short的溢出归零特性
例2intchecksum_v1(int*data){chari;intsum=0;for(i=0;i64;i++)sum+=data[i];returnsum;}校验和1
例2intchecksum_v1(int*data){chari;intsum=0;for(i=0;i64;i++)sum+=data[i];returnsum;}校验和1i声明为char的优缺点?
例2intchecksum_v1(int*data){chari;intsum=0;for(i=0;i64;i++)sum+=data[i];returnsum;}校验和1i声明为char的优缺点?char表达的范围超过了64,可以完成题目要求。char更节省寄存器和内存空间。
例2(续)校验和1checksum_v1_sMOVr2,r0 ;r2=data,地址指针MOVr0,#0 ;sum=0MOVr1,#0 ;i=0,计数器checksum_v1_loopLDRr3,[r2,r1,LSL#2] ;r3=data[i]ADDr1,r1,#1 ;r1=i+1ANDr1,r1,#0xff ;i=(char)r1CMPr1,#0x40 ;comparei,64ADDr0,r3,r0 ;sum+=r3BCCchecksum_v1_loop ;if(i64)loopMOVpc,r14 ;returnsum
例2(续)校验和1讨论:i是char型,超过255要归零,所以汇编程序中要确保其不超过255。上述汇编共10条指令
例2(续)intchecksum_v1(int*data){chari;intsum=0;for(i=0;i64;i++)sum+=data[i];returnsum;}校验和2intchecksum_v2(int*data){unsignedinti;intsum=0;for(i=0;i64;i++)sum+=data[i];returnsum;}
例2(续)校验和2checksum_v2_sMOVr2,r0 ;r2=dataMOVr0,#0 ;sum=0MOVr1,#0 ;i
您可能关注的文档
最近下载
- Unit4ReadingandThinking 高中英语人教版选择性必修 第二册.pptx
- 2024年护理三基考试全真模拟复习题库及答案(共1780题).doc
- 2024沪科版八年级数学下册期中数学常考100题(解析版)名校版全套.doc VIP
- 第十课第九味.ppt
- 第2单元第1课从无序到有序课件 清华大学版信息科技四年级下册.pptx
- 《中国传统节庆习俗》课件.ppt VIP
- 2023年福建省计算机专项考评员试题.docx VIP
- 【初中地理】欧洲西部(经济、旅游)课件-2024-2025学年七年级地理下学期(湘教版2024).pptx VIP
- 高中化学物质的量专题.docx VIP
- 《水浒传》名著导读课件.ppt
文档评论(0)