- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
KEIL C51集成开发环境C和汇编语言的相互调用
维普资讯
第27卷 第 1期 兰 州 交 通 大 学 学 报 V()1.27No.1
2008年 2月 JournalofLanzhouJiaotongUniversity Feh.2008
文章编号:1001—4373(2008)01—013卜O4
KEILC51集成开发环境 C和汇编语言的相互调用
严天峰, 王耀琦
(兰州交通大学 电子与信息工程学院,甘肃 兰州 730070)
摘 要:目前C语言已成为开发单片机项 目的主要工具,但一些特殊的应用场合仍然需要汇编语言编写程序,如编
写时序要求非常严格的接 口协议时,这必然涉及到C与汇编的相互调用,即混合编程的问题.详细介绍了KE1L
C51环境下的C和汇编语言相互调用的方法和原则,并具体说明混合编程的细节和应注意的问题.
关键词 :KEILC51汇编 调用 混合编程
中图分类号:TP311.11 文献标识码:A
目前,C语言已是单片机应用系统的主流编程 时,每个函数都生成一个以?PR?函数名?模块名
工具,它具有代码可靠性高,可移植性好,易于维护 为段名的程序代码段,如果该函数包括无明确存储
的特点.特别是德国KEII公司推出功能强大的基 器类型声明的局部变量,将生成一个字节类型的局
于WINDOWS平台的51系列单片机集成开发工具
部数据段;当参数中有位变量时,还将生成一个位类
/*Vision之后,这一趋势越发明显.采用C语言几乎
型的局部位段,用来存放在函数内部已定义的位标
可以完成江编语言的所有工作,可以大在提高程序
量和位变量参数.在 SMAII编译模式下,局部段
的开发效率.但在一些特殊应用的场合仍然需要通
的命名原则如表 1所示_1].
过汇编语言编写程序,比如对时序要求非常严格的
接口协议和中断向量的地址处理等等.另外还存在 表 1 局部段的命名原则
Tab.1 Namingprincipleoflocalse~ ent
一 种情况,即程序员原先已用汇编语言编写了大量
的子程序,现在虽然改用 C语言开发设计,但又不
想重写代码;或者想充分发挥 C语言在数值计算的
优势,通过汇编语言调用 C来实现复杂的数学计
算.这必然要涉及到C与汇编的相互调用,即混合
编程的问题.C与汇编的混合编程,重点是参数的传
每个局部段的段名表示该段的起始地址.假如,
递和函数值的返回以及 C51对 目标代码的段管理,
模块 example包含一个名为 “func”的函数,其程序
这是嵌人式系统混合编程过程中实现开发和运行效
代码段的命名为”?PR?func?example,其中func
率统一的关键环节.
(函数名)即为该段的起始地址.如果func函数包含
1 C51编译器对程序和数据代码段的管理 有DATA和BIT对象的局部变量,局部数据段和
局部位段的起始地址则定义为?func?BYTE和?
C51能否成功调用汇编语言的前提条件之一是
文档评论(0)