电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

C语言程序设计 文档

  • 资源ID:585905       资源大小:174KB        全文页数:28页
  • 资源格式: DOC        下载积分:2金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要2金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

C语言程序设计 文档

是否具有对高级语言 支持已成为衡量微控制器性能的标准之一。显然,在 台上要比在汇编级上编程具有诸多优势:代码清晰易读、易维护,易形成模块化,便于重复使用从而增加代码的开发效率。又因 C 语言的可移植性最佳而成为首选。因此,支持 C 语言几乎是所有微控制器设计的一项基本要求。µ指令结构的设计就着重考虑了对 C 语言的支持。一种针对 µ作平台的译器,1 µ持的 C 语言算逻操作符(# )在 µ指令系统算逻操作符与 符大同小异,见表 C 语言支持的数据类型µ持 使用的基本数据类型如表 示。3 程序调用协议由于 C 编译器产生的所有标号都以下划线(_)为前缀,而 C 程序在调用汇编程序时要求汇编程序名也以下划线( _ )为前缀。模块代码间的调用,是遵循 µ系的调用协议(所谓调用协议,是指用于标准子程序之间一个模块与另一模块的通讯约定;即使两个模块是以不同的语言编写而成,亦是如此。调用协议是指这样一套法则:它使不同的子程序代码之间形成一种握手通讯接口,并完成由一个子程序到另一个子程序的参数传递与控制,以及定义出子程序调用与子程序返回值的常规规则。调用协议包括以下一些相关要素:1) 调用子程序间的参数传递;2) 子程序返回值;3) 调用子程序过程中所用堆栈;4) 用于暂存数据的中间寄存器。µ系的调用协议的内容如下:1. 参数传递参数以相反的顺序(从右到左)被压入栈中。必要时所有的参数都被转换成其在函数原型中被声明过的数据类型。但如果函数的调用发生在其声明之前,则传递在调用函数里的参数是不会被进行任何数据类型转换的。2. 堆栈维护及排列函数调用者应切记在程序返回时将调用程序压入栈中的参数弹出。各参数和局部变量在堆栈中的排列如图 示。3. 返回值16 位的返回值存放在寄存器 。32 位的返回值存入寄存器对 2 中;其中低字在 ,高字在 。若要返回结构则需在 存放一个指向结构的指针。4. 寄存器数据暂存方式编译器会产生 程动作来暂存或恢复 R 及 存器。汇编器则通过令可将 动压入栈中,而通过或令将其自动弹出栈来。5. 指针编译器所认可的指针是 16 位的。函数的指针实际上并非指向函数的入口地址,而是一个段地址向量_该向量里由 2 个连续的 数据单元存放的值才是函数的入口地址。下面以具体实例来说明 µ系的调用协议。 C 程序中调用汇编函数在 C 中要调用一个汇编编写的函数,需要首先在 C 语言中声明此函数的函数原型。尽管不作声明也能通过编译并能执行代码,但是会带来很多的潜在的 面首先观察最简单的 C 调用汇编的堆栈过程:程序 4参数传递的 C 语言调用汇编函数/*/ 描述: 无参数传递的 C 语言调用汇编函数/ 日期: 2002/12/10/*/_ /声明要调用的函数的函数原型,此函数没有任何参数的传递/=/ 函数: :主函数/=);/*/_ 来自于 时程序,无入口出口参数。/ 束/*/汇编函数如下:/=/函数: :_:延时程序/参数:无/返回:无/= 发环境下运行可以看到调用过程堆栈变化十分简单,如图 示。现在在 C 语言中加入局部变量来观察调用过程:程序 4 语言中具有局部变量/*/ 描述: 局部变量调用示意/ 日期: 2002/12/10/*/_ /声明要调用的函数的函数原型,此函数没有任何参数的传递/=/ 函数: :主函数/=i = 1, j = 2, k = 3;);i = 0;i+;j = 0;j+;k = 0;k+;/*/ _来自于 时子程序。无入口出口参数。/ _,);点亮 ,位数(B,显示值/ 束/*/汇编函数如下:=/函数: :_:延时子程序/参数:无/返回:无/=图 表示出了, C 语言中的局部变量( i,j,k)在堆栈中存放的位置。进一步,我们为函数 递三个参数 i,j,k。同样来观察堆栈的变化,来理解调用协议。程序 4 向汇编函数传递参数/*/ 描述: C 向汇编函数传递参数/ 日期: 2002/12/11/*/_a,b,c); /声明要调用的函数的函数原型/=/ 函数: :主函数/=i = 1, j = 2, k = 3;)i,j,k);i = 0;i+;j = 0;j+;k = 0;k+;/*/_a,b,c); 来自于 试传递参数,a,b,c 所传递的参数,无出口参数。/ 束/*/汇编函数如下:/=/函数: :_a,b,c)/描述:测试传递参数/参数:a,b,c 所传递的参数/返回:无/=通过以上三个例子,我们了解到 C 调用函数时是如何进行参数传递的。另外的一个问题就是关于函数的返回值,是怎样实现的。函数的返回相对简单,在汇编子函数中,返回时寄存器 的内容,就是此函数 16 位数据宽度的返回值。当要返回一个 32 位数据宽度的返回值时,则利用的是 的内容:低 16 位内容,

注意事项

本文(C语言程序设计 文档)为本站会员(工****)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.