(免费)第5章 c语言.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
For(初值;条件1;操作) {……} Do {……}while(条件); Switch(表达式) {case 0: 语句1; case 1: 语句2; …… default;} 头文件(*.H) 包括一些宏定义和标准函数,c程序可以直接调用 math.h, stdio.h, string.h, file.h, 等 调用方法: #include”math.h” #include stdio.h …… Val=sine(x); 程序结构: #include”math.h” 包含库文件 Void max(x,y,z) 函数声明及定义 {……… } Main() {语句 ……} * * 第5章 c54x C语言程序设计 1 c语言程序开发过程 C程序 汇编器 链接器 调试程序 .obj 链接文件.cmd 列表文件.lst 存储器映射文件 .map .out 十六进制文件 .hex C编译 C 语言的编译和链接过程 .asm 2.标准C语言回顾 关键语法: 数据类型:float,int,char,string long,unsighned 控制语句: If(条件) …… Else …… 单独C语言编程: C语言程序编写过程步骤: (1) 编辑器编辑C程序*.c; (2) 编译程序将C程序编译汇编成目标文件*.obj; (3) 编辑一个链接命令文件(.cmd文件); (4) 链接生成.out文件,用硬件仿真器进行调试。 3. C54x DSP的C语言编程及混合编程 1. TMS320C54x DSP混合编程 C语言和汇编语言的混合编程有以下几种方法。 (1) 独立编写汇编程序和C程序,分开编译或汇编,形成各自的目标代码模块,再用链接器将C模块和汇编模块链接起来。这种方法灵活性较大,但用户必须自己维护各汇编模块的入口和出口代码,自己计算传递的参数在堆栈中的偏移量,工作量较大,但能做到对程序的绝对控制。 (2) 在C程序中直接内嵌汇编语句。用此种方法可以在C程序中实现C语言无法实现的一些硬件控制功能,如修改中断控制寄存器,中断标志寄存器等。 (3) 将C程序编译生成相应的汇编程序,手工修改和优化C编译器生成的汇编代码。采用此种方法时,可以控制C编译器,使之产生具有交叉列表的C程序和与之对应的汇编程序,而程序员可以对其中的汇编语句进行修改。 1. 独立的C和汇编模块接口 两方面:程序的相互调用 变量、符号及常数的相互调用 采用此方法在编写C程序和汇编程序时,必须遵循有关的调用规则和寄存器规则。如果遵循了这些规则,那么C和汇编语言之间的接口是非常方便的。 例1 C程序: extern int asmfunc( ); int gvar; main( ) { int i=5; i =asmfunc(i); } 汇编程序: _asmfunc: STL A,*(_gvar) ADD*(_gvar),A RET 函数调用规则: 参数传递 在函数调用前,将参数以逆序压入运行堆栈。所谓逆序,即最右边的参数最先压入栈,然后自右向左将参数依次压入栈,直至第二个参数入栈完毕。对第一个参数,则不需压入堆栈,而是放入累加器A中,由A进行传递。 Func(参数1,参数2,……,参数n) A 依次压栈 函数调用时堆栈的使用 函数调用规则: 将函数的返回值放入累加器A中。 如果被调用函数用到寄存器AR1、AR6、AR7,则必须将它们事先压栈保护。 例1 C程序: extern int asmfunc( ); /*声明外部的汇编子程序*/ /*注意函数名前不要加下划线*/ int gvar; /*定义全局变量*/ main( ) { int i=5; i =asmfunc(i); /*进行函数调用*/ } 汇编程序: _asmfunc: ;函数名前一定要有下划线 STL A,*(_gvar) ;i的值在累加器A中 ADD*(_gvar),A ;返回结果在累加器A中 RET ;子程序返回 2. C程序中访问汇编程序变量 从C程序中访问汇编程序中定义的变量或常数时,根据变量和常数定义的位置和方法的不同,可分为三种情况。 (1) 访问在.bss段中定义的变量,方法

文档评论(0)

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

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

1亿VIP精品文档

相关文档