ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:23.40KB ,
资源ID:12961334      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-12961334.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Keil51汇编与C语言混合编程方法研究.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于Keil51汇编与C语言混合编程方法研究.docx

1、基于Keil51汇编与C语言混合编程方法研究年第期计算机与现代化总第期文章编号:()基于汇编与语言混合编程方法研究张志科,王振喜(忻州师范学院电子系,山西忻州)摘要:分析基于汇编与语言混合编程的基本方法,给出每种方法的具体操作步骤。在应用实践中,为了充分发挥两种语言的优势,提高程序的执行效率,可根据问题的特殊性选择相应的编程方案,以期达到缩短程序设计过程的目标。关键词:;混合编程;参数传递中图分类号:文献标识码:,(,):,:;引言汇编与语言优点各异,前者对硬件控制方便、程序代码简练、执行效率高,后者功能丰富、可移植性好、可读性强。为了充分发挥两种语言的优点,使程序更加优化,在单片机程序设计中

2、常会涉及到汇编与语言混合编程问题。汇编与语言混合编程的方法可分为两类,一类是在程序中嵌入汇编代码,另一类是两种程序以函数的形式相互调用。程序调用汇编和汇编调用函数是两种基本的调用方式,具体采用何种方式主要取决于工程对程序的要求。根据应用实践的具体情况,可将混合编程的基本方法分为以下种情况。在语言程序段中内嵌汇编代码在中嵌入汇编代码主要是用于实现延时或中断处理,通常是在汇编程序简练,且内部没有复杂跳转时采用,它是通过使用中的一组预处理指令来实现的,具体方法如下:()格式要求。()工程选项设置旧。在窗口中,右键点击包含汇编代码的文件,选择“”,然后在弹出的窗口中选中“”和“”两项,使检查框由灰色变

3、成黑色。选中这两项才会将“”与“”中的代码复制到输出的文件中,文件为文件中对应的汇编文件。也可通过分析文件了解函数的封装规则。()内嵌汇编代码文件实例。艇,()收稿日期:基金项目:山西省教育厅普通高等学校大学生创新性实验基金资助项目()作者简介:张志科(一),男,山西翼城人,忻州师范学院电子系副教授,本科,研究方向:自动控制技术。万方数据计算机与现代化年第期;汇编延时程序静鲫:对于在程序中通过撑和嵌入的汇编程序,在编译时不做其它处理,因此不存在参数传递和返回值问题。无参数传递的混合调用在集成开发环境中进行混合编程时,需要在工程中建立两类文件,文件和汇编文件,其中汇编文件中的函数作为被调用函数时

4、,只要使得该函数遵循函数的转换规则,就可以实现相互调用。程序调用汇编()文件格式。程序在调用汇编函数之前必须先用对函数加以声明。实例如下:呼();声明此函数为外部函数();();所调用的汇编函数;()汇编文件格式。首先在程序存储区中定义段,接着利用把函数声明为公共函数,为汇编函数起始标志符,之后紧接汇编程序。为了实现程序的相互调用,要求汇编程序必须遵循函数名的转换规则,函将无法实现程序的相互调用。实例如下:;定义模块名?;在程序存储区中定义段;声明为公共函数?;函数起始位置:汇编程序汇编调用函数()汇编文件格式。此时只需要在汇编文件开头用“(函数名)”语句来声明所调用的函数即可。实例如下:()

5、;声明所要调用的函数,;调用函数,()文件格式。在该文件中只需写出所要调用的函数即可。()在汇编文件中所要调用的延时函数函数语句该方法主要用于无参数传递的情况,简单且易于掌握。通过约定固定存储空间传递参数的混合调用在单片机内可在两种语言之间约定“用户区”作为参数传递空间。程序调用汇编()文件格式。弛庐();()】【;();()汇编文件格式。汇编文件通过约定存储区接收文件传递过来的参数,对参数进行处理。?碰;?:,:¥。明万方数据年第期张志科等:基于汇编与语言混合编程方法研究汇编调用函数()汇编文件格式。();声明所要调用的函数舾拍;调用函数,()文件格式。在用绝对地址访问时,必须添加该头文件(

6、);该方法简单且容易掌握,却有存储空间使用效率低的缺点,但在项目对存储空间需求较低的情况下,该方法是一个不错的选择。通过系统编译分配的存储区传递参数的混合调用通过系统编译自动分配存储区地址进行传递参数时,参数段首地址需用段名“?蠡?”和“?”表示,为函数名,其中,“?”传递位参数的段首地址,“?”传递其它参数的段首地址,参数将在这些段中分配空间,按声明的先后在每个段中顺序保存】。该方法多用于调用汇编的情况。以下是该方法的个实例:()文件格式。卸该语句把参数传递约束在固定存储区传递();()();()汇编文件格式。?;函数代码段声明?;自变量数据段声明,?;程序段及数据段开始地址?:?;函数可被

7、连接器放置在任何地方:?;函数中变量的高字节:?¥,该方法比较复杂,同样有存储空间使用效率低的缺点,当寄存器不够用时,部分参数必须通过这种方式进行传递(见第节),因此该方法一般不单独使用。通过寄存器传递参数的混合调用规定调用函数最多可通过单片机的工作寄存器传递个参数,余下的参数通过固定存储区传递。可以用“”命令约束为固定存储区传递,如果用固定存储区传递或参数太多,参数通过固定存储区传递,用寄存器传递参数的函数在生成代码时,被编译器在函数名前加上一个下划线“一”的前缀,在固定存储区传递参数的函数则没有下划线。不同的参数用到的寄存器不一样,不同的数据类型用到的寄存器也不同。通过寄存器传递的参数如表

8、所示。表传递参数用到的寄存器心参数类型参数通用指针第个、一、第个、,、第个、无、表中型和型数据传递时,高位数据在低位寄存器中,低位数据在高位寄存器中;型数据满足位的格式,指数和符号位在中;通用指针存储类型在中,高位在中函数参数传递举例情况如表所示。表函数参数传递举例声明说明()参数在寄存器和中传递。(,第一个参数在寄存器和中传递,第二个参数在寄存器和中传递,第三个参数在寄存器,)、和中传递。(,第一个参数在寄存器、和中传递,第二个参数不能用寄存器。因为类型可用的寄存器)已被第一个参数所用,这个参数用固定存储区传递。(,第个参数在寄存器、和中传递,第二个)参数不能用寄存器传递。只能用固定存储区传

9、递。万方数据计算机与现代化年第期函数返回值通常用寄存器传递,表列出了可能的返回值和所用的寄存器。表函数返回值用到的寄存器返回值类型寄存器说明由位运算器返回()在返回单个字节()、高位在。低位在()一高位在,低位在一耵位格式通用指针、存储类型在,高位在,低位在为了能够在语言中调用汇编程序,要求汇编程序的编写必须符合语言的相关命名规则。程序在调用汇编程序时,除了前面参数传递的相关规则外,函数及其相关段也需要满足一定的规则。一个源程序模块被编译后,其中的每一个函数以“?函数名?模块名”为名的命名规则被分配到一个独立的段。例如:如果模块“”内包含一个名为“”的函数,则其段的名字是“?”,如果函数中还包

10、含有和对象的局部变量,编译器将按“?函数名?”和“?函数名?”命令规则建立一个和段,它们代表所要传递参数的起始位置,其偏移值为零。段内代码与数据定义也遵循一定的规则。这些段是公开的,它们的地址可被其他模块访问。另外,这些段被编译器赋予“”的属性,其可被连接定位器做覆盖分析。程序调用汇编()文件格式。(,);();(,);()汇编文件格式。?一?;函数代码段声明;程序段及数据段开始地址?:,。,当通过寄存器传递参数时在汇编里定义函数要用“一函数名”来定义函数。汇编调用函数()汇编文件格式。();声明所要调用的函数,通过寄存器则函数为。并;把所要传送的值放入相应寄存器单元柏;调用函数,耵;所调用的

11、函数返回值可从中读取()文件格式。呼(,)();结束语在单片机程序设计中,能够很好地理解参数在两种语言之间的传递过程,且能灵活地使用汇编与语言混合编程的各种方法,这样既能提高程序的可读性,又能保证对硬件控制的精确性,更重要的是能够提升程序的执行效率。参考文献:】杨加国单片机语言与汇编语言混合编程成都大学学报:自然科学版,():陈百良单片机语言与汇编语言的混合编程科技信息,():】马忠梅单片机的语言应用程序设计北京:北京航空航天大学出版社,王兰英,居锦武单片机与汇编语言混合调用的实现四川理工学院学报:自然科学版,():李鸿单片机原理及应用长沙:湖南大学出版社。杨岸单片机应用系统软件编程效率的提高

12、淮南师范学院学报,():梁航,王剑钢,张帅中调用程序电子测量技术,():靳达单片机应用系统开发实例导航北京:人冕¥电出版社,(下转第页)万方数据年第期王秋芬等:一种新的基于哈希函数的排序算法下,取“一,贝。(一)【警】由式()可以看出,与成反比例关系,当一时,。因此,常数的取值范围为,且随着待排元素规模的递增而递减。故:()()()()结束语采用哈希函数分档的排序算法将任意分布的待排序整数映射到数组相应位置,循环操作,直至所有待排元素按照递增的次序排列。但是,算法仅适用于任意分布的整数,而对浮点数的排序有待进一步研究。参考文献:严蔚敏,吴伟民数据结构(第版)北京:清华大学出版社,:王向阳均匀分

13、布数据的分“档”统计插入排序算法研究数值计算与计算机应用,():杨红颖,王向阳分“档”快速排序算法研究计算机工程与应用,():江华,谭新星一种非比较分段排序算法的研究计算机应用与软件,():杨红颖,王向阳一种新的按位块分段快速排序算法微电子学与计算机,():,何文明针对任意分布数据的高效分档混合排序算法计算机工程与应用,():,毕秀丽,等一种基于变换的循环散列分档排序算法分析计算机工程与应用,():张慧成,刘章山,等快速排序算法的研究与应用计算机工程,():,谢琪,沈光星按位链接快速排序算法计算机工程。,():汪维清,罗先文,汪维华分组排序算法计算机工程与应用,():】范时平,汪林林一种基于数

14、据分块的快速原地归并算法计算机科学,():周建钦超快速排序算法计算机工程与应用,():。杨红颖,王向阳任意分布数据的二次分“档”链接排序算法研究小型微型计算机系统,():李德启,王雄一种新型快速的排序算法计算机工程,():王岁花,王川,魏淑桃一种新型快速排序算法的设计与实现河南师范大学学报:自然科学版,():吴江,张德同二次分“档”链接排序算法分析计算机研究与发展,():国印品眄日田岛明朗印日印石曰印品明丘目印品丘曰丘日丘日印酗丘曰品印印酣品品田啊印日酮巨百印石己石日圈团印丘口日囝丽记】(上接第页)张培仁,等基于语言编程单片机原理与应用北京:清华大学出版社,赵亮,侯国锐,等单片机语言编程与实例

15、北京:人民邮电出版社,李小洪编译器用户手册。杜波,李丽娜,吴川与的混合编程长春工业大学学报:自然科学版,():刘伏文单片机和汇编语言混合编程电子制作,(、:马忠梅,籍顺一,张凯,等单片机的语言应用程序设计北京:北京航空航天大学出版社,万方数据基于Keil51汇编与C语言混合编程方法研究 作者: 作者单位: 刊名: 英文刊名: 年,卷(期: 被引用次数: 张志科, 王振喜, ZHANG Zhi-ke, WANG Zhen-xi 忻州师范学院电子系,山西,忻州,034000 计算机与现代化 COMPUTER AND MODERNIZATION 2010,(10 0次 参考文献(14条 1.杨加国

16、单片机C语言与汇编语言混合编程 2008(3 2.陈百良 单片机C语言与汇编语言的混合编程 2008(6 3.马忠梅 单片机的C语言应用程序设计 1997 4.王兰英.居锦武 单片机C51与汇编语言混合调用的实现 2008(3 5.李鸿 单片机原理及应用 2004 6.杨岸 单片机应用系统软件编程效率的提高 2003(3 7.梁航.王剑钢.张帅 Keil C51中调用A51程序 2006(5 8.靳达 单片机应用系统开发实例导航 2003 9.张培仁 基于C语言编程MCS-51单片机原理与应用 2002 10.赵亮.侯国锐 单片机C语言编程与实例 2003 11.李小洪 Keil Software-Cx51编译器用户手册 2001 12.杜波.李丽娜.吴川 Keil C51与A51的混合编程 2003(3 13.刘伏文 单片机C和汇编语言混合编程 2007(6 14.马忠梅.籍顺心.张凯 单片机的C语言应用程序设计 2007 本文链接: 授权使用:东南大学图书馆(wfdndx,授权号:50c80bfd-daf9-4e1e-99bd-9e670182689d 下载时间:2011年1月10日

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2