基于Keil51汇编与C语言混合编程方法研究.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:5 大小:188KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

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

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

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

计算机与现代化2010年第10期JISUANJIYUXIANDAIHUA总第182期文章编号:10062475(2010)10004304基于Keil51汇编与C语言混合编程方法研究张志科,王振喜(忻州师范学院电子系,山西忻州034000)摘要:分析基于Keil51汇编与C语言混合编程的基本方法,给出每种方法的具体操作步骤。在应用实践中,为了充分发挥两种语言的优势,提高程序的执行效率,可根据问题的特殊性选择相应的编程方案,以期达到缩短程序设计过程的目标。关键词:Keil51;混合编程;参数传递中图分类号:TP311文献标识码:Ado:i10.3969/.jissn.10062475.2010.10.011ResearchonMixedProgrammingMethodofCLanguageandAssembleLanguageBasedonKeil51ZHANGZhike,WANGZhenxi(DepartmentofElectronics,XinzhouTeachersCollege,Xinzhou034000,China)Abstract:ThispaperanalyzesthebasicmethodofmixedprogrammingofClanguageandassemblelanguagebasedonKeil51,givesthespecificstepsofeachmethod.Intheapplicationpractice,forgivingfullplaytotheadvantagesofbothlanguagesandimprovingtheexecutedefficiencyofprograms,itcanselecttheappropriateprogrammingschemeaccordingtothespecialissue.Soitcanachievethegoalofshorteningtheprocessofprogramming.Keywords:Keil51;mixedprogramming;parametertransfer跳转时采用,它是通过使用C51中的一组预处理指0引言令来实现的,具体方法如下:汇编与C语言优点各异,前者对硬件控制方便、(1)格式要求[1]。程序代码简练、执行效率高,后者功能丰富、可移植性#pragmaasm好、可读性强。为了充分发挥两种语言的优点,使程;汇编程序代码序更加优化,在单片机程序设计中常会涉及到汇编与#pragmaendasm[2]C语言混合编程问题。汇编与C语言混合编程的方(2)工程选项设置。在窗口中右键点击包含汇编代码的法可分为两类,一类是在C程序中嵌入汇编代码,另Project,C一类是两种程序以函数的形式相互调用。C程序调文件,选择Optionsfor...,然后在弹出的窗口中选用汇编和汇编调用C函数是两种基本的调用方式,中GenerateAssemblerSRCFile和AssembleSRC具体采用何种方式主要取决于工程对程序的要求。File两项,使检查框由灰色变成黑色。选中这两项根据应用实践的具体情况,可将混合编程的基本方法Keil才会将asm与endasm中的代码复制到输出分为以下5种情况。的SRC文件中,SRC文件为C文件中对应的汇编文件,也可通过分析SRC文件了解函数的封装规则。1在C语言程序段中内嵌汇编代码(3)内嵌汇编代码C文件实例。#include<reg51.h>在C51中嵌入汇编代码主要是用于实现延时或voidmain(void)中断处理,通常是在汇编程序简练,且内部没有复杂{收稿日期:20100618基金项目:山西省教育厅普通高等学校大学生创新性实验基金资助项目(2008[105])作者简介:张志科(1962),男,山西翼城人,忻州师范学院电子系副教授,本科,研究方向:自动控制技术。44计算机与现代化2010年第10期p2=1;数名)语句来声明所调用的C函数即可。实例如下:#pragmaasmEXTRNCODE(DELAY);声明所要调用的C函数;汇编延时程序ORG0000H#pragmaendasmMOVP2,#00Hp2=0;CALLDELAY;调用C函数}MOVP2,#FFH对于在C程序中通过#pragmaasm和#pragmaENDendasm嵌入的汇编程序,Keil在编译时不做其它处(2)C文件格式。理,因此不存在参数传递和返回值问题。在该文件中只需写出所要调用的C函数即可。#include<reg51.h>2无参