第5章 C语言编程.ppt

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

C语言和汇编语言的混合编程有以下几种方法:。 (1) 独立编写汇编程序和C程序,分开编译或汇编,形成各自的目标代码模块,再用链接器将C模块和汇编模块链接起来。这种方法灵活性较大,但用户必须自己维护各汇编模块的入口和出口代码,自己计算传递的参数在堆栈中的偏移量,工作量较大,但能做到对程序的绝对控制。 (2) 在C程序中使用汇编程序中定义的变量和常量。 (3) 在C程序中直接内嵌汇编语句。用此种方法可以在C程序中实现C语言无法实现的一些硬件控制功能,如修改中断控制寄存器,中断标志寄存器等。 5.2 ?用C语言和汇编语言混合编程 5.2.1 C54x DSP混合编程方法 (4) 将C程序编译生成相应的汇编程序,手工修改和优化C编译器生成的汇编代码。采用此种方法时,可以控制C编译器,使之产生具有交叉列表的C程序和与之对应的汇编程序,而程序员可以对其中的汇编语句进行修改。优化之后,对汇编程序进行汇编,产生目标文件。根据编者经验,只要程序员对C和汇编均很熟悉,这种混合汇编方法的效率可以做得很高。但是,由交叉列表产生的C程序对应的汇编程序往往读起来颇费劲,因此对一般程序员不提倡使用这种方法。 1. 独立的C和汇编模块接口 独立的C和汇编模块接口是一种常用的C和汇编语言接口方法。采用此方法在编写C程序和汇编程序时,必须遵循有关的调用规则和寄存器规则。调用规则和寄存器规则已在前面作了详述。如果遵循了这些规则,那么C和汇编语言之间的接口是非常方便的。C程序可以直接引用汇编程序中定义的变量和子程序,汇编程序也可以引用C程序中定义的变量和子程序。 【例6.5】 C程序: extern int asmfunc( ); /*声明外部的汇编子程序*/ /*注意函数名前不要加下划线*/ int gvar; /*定义全局变量*/ main( ) { int i=5; i =asmfunc(i); /*进行函数调用*/ } 汇编程序: _asmfunc: ;函数名前一定要有下划线 STL A,*(_gvar) ;i的值在累加器A中 ADD *(_gvar),A ;返回结果在累加器A中 RET ;子程序返回 * 第5章 C语言程序设计与混合编程 5.1 C语言程序设计 5.2 用C语言和汇编语言混合编程 本章小结 习 题 (1) 用汇编语言开发。此方式代码效率高,程序执行速度快,可以充分合理地利用芯片提供的硬件资源。但程序编写比较烦琐,可读性较差,可移植性较差,软件的修改和升级困难。 (2) 用C语言开发。CCS平台包括优化ANSI C编译器,从而可以在C源程序级进行开发调试,增强软件的可读性,提高了软件的开发速度,方便软件的修改和移植。然而,C编译器无法实现在任何情况下都能够合理地利用DSP芯片的各种资源。 C54x DSP软件设计的方法通常有三种: (3) C语言和汇编语言混合编程开发。采用混合编程的方法能更好地达到设计要求,完成设计任务。 1. C语言特点 C语言是国际上广泛流行的、很有发展前途的计算机高级语言。它适合于作为系统描述语言,既可以用来编写系统软件,也可以用来编写应用软件。 汇编语言依赖于计算机硬件,程序的可读性和可移植性比较差。而高级语言具有很好的可移植性,但是难以实现汇编语言的某些功能。因为C语言仍然需要通过编译、连接才能得到可执行目标程序,所以是一种高级语言。但C语言允许访问物理地址,能进行位操作,能实现汇编语言的大部分功能,能直接对硬件进行操作。C语言正是一种既可以访问物理地址又可以进行位操作的高级语言,这也是其与别的高级语言不同的地方。 5.1 C语言程序设计 5.1.1 C语言特点及语法 C语言具有如下基本特点: (1) 语言简洁、紧凑,使用方便、灵活。 (2) 运算符丰富,表达式类型多样化。 (3) 数据结构类型丰富,具有现代化语言的各种数据结构。 (4) 具有结构化的控制语句。 (5) 语法限制不太严格,程序设计自由度大。 (6) C语言允许访问物理地址,能进行位操作,能实现汇编语言的大部分功能,能直接对硬件进行操作。 (1) 限定词 可由字母、数字和下划线组成。限定词必须以字母或下划线开头。区分大小写。 (2) 常量 常量包括整型常量(八进制、十进制、十六进制、长整型),字符常量,实型常量(小数形式、指数形式),字符串常量,表达式,算术表达式(整型表达式、实型表达式),逻辑表达式,字位表达式,强制类型转换表达式,逗号

文档评论(0)

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

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

1亿VIP精品文档

相关文档