网站大量收购独家精品文档,联系QQ:2885784924

C语言与ASM以及线性汇编初步教程.ppt

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言与ASM以及线性汇编初步教程

C语言与ASM以及线性汇编初步 ;主要内容;三种开发工具的比较 -----C、ASM、线性汇编 ; 三种开发工具的比较;用汇编语言开发应用程序的优缺点: 优点:更能发挥系统特点,汇编语言设计出的程序更贴近硬件特性,往往能将硬件效能发挥到极致;代码精练、不易产生冗余、效率高;代码量小。 缺点:可读性差,不利于复杂算法的开发和实现;可移植性差;容易产生流水线冲突;复杂性高、开发周期长。; 三种开发工具的比较;什么是线性汇编? 线性汇编类似于汇编代码,不同的是线性汇编代 码中不需要给出汇编代码必须指出的所有信息, 线性汇编代码对这些信息可以进行一些选择,或 者由汇编优化器确定。下面是不需要给出的信息: ? 使用的寄存器 ? 指令的并行与否 ? 指令的延时周期 ? 指令使用的功能单元;何时使用线形汇编? 1.当程序中需要操作与硬件密切相关的设备,而用C语言较难实现时; 2.当需要绕开C编译器的规定,进行特殊操作时。如:C语言规定程序不能访问代码区,当需要进行类似访问时可用限制较小的汇编语言程序设计; 3.当需要提高模块的效率(包括空间上和时间上),而C语言程序无法达到要求时。 ;1)点积的C语言代码 ;2)ASM语言代码 ; 3)非并行的ASAM代码 4)并行的ASAM代码 ;非并行和并行ASAM代码性能比较 5)线性汇编代码;完整的线性汇编代码;C代码 代码效率低 使用Intrinsics的C代码 嵌入汇编 容易破坏C环境 汇编代码 编程工作量大 ;开发工具 效率 编程工作量 ;软件工具流程;硬件工具流程;指令集概述;指令集概述;操作码映射(.D);操作码映射(NOP) ;并行操作 取指包的基本格式 取指包:八条32bit指令; 执行包:并行执行的所有指令。执行包中的每一条指令使用的功能单元必须各不相同; 每条指令的并行执行位(p位)控制本条指令是否与取指包中的其他指令并行执行:p =1 与下条指令并行;p =0 下条指令在当前指令的下个周期执行。 ;例子:取指包的部分并行p位模式;条件操作;C62xx指令集(根据操作类型分类);C62xx指令集(根据功能单元分类);C62xx指令集(根据执行周期分类);C语言编程初步;建议的程序开发流程;C语言编程初步;编译命令;常用的编译选项;连接器选项;C62xx C 数据类型;变量声明 对局部变量的访问 在堆栈内分配存储空间; 用堆栈首地址作首基地址,用指针*+B15(disp)来访问; 堆栈分配在默认段.stack。 ;变量声明 全局变量/静态变量—两种访问形式;变量声明 Near变量的生成和使用;变量声明 Near/Far变量--例子;变量声明总结 局部变量在堆栈段.stack分配地址,用一条指令访问。 采用near形式声明全局变量,变量分配在数据段.bss, 用一条指令访问。 采用far形式声明全局变量,变量分配在数据段.far或 用户自定义数据段,用三条指令访问,应尽量避免采用 ;C优化器 经过C优化器的优化,以及其它C语言优化后,C代码效率可达70-80% 用优化选项启动;C优化器 与优化有关的其它编译选项 建议使用 -pm 与-o3合用,进行程序级优化 -mt 程序中没有数据aliasing -x2 函数内联 不要使用 -ml 大模式(使得.bss段内的变量都按far方式访问) -g 符号调试 -s, -ss, -os C编译器生成的汇编文件内,C语句作为注释出现 ;C优化器 使用步骤-建议 1.不带优化选项进行编译(功能验证) cl6x -g -s file.c -z 2.用优化选项-o2进行编译(-o2是与符号调试兼容的最高优化级别) cl6x -g -o file.c -z 3.用最高级别优化选项进行编译 cl6x -o3 -pm file.c -z ;C优化器 3. Intrinsics 它是直接与C62xx汇编指令相对应的特殊内联函数,没有函数调用开支。常见的Intrinsics列表如下: ;C优化器 4. 字访问 字访问优化方法: ;C优化器 4. 字访问----

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档