《现代电子技术》2006年第24期摘录:张玉峰等:KeilC51中C5
-
如发现有乱码,请点击下面链接浏览原文
正文摘录:
张玉峰等:KeilC51中C51猩垦墨汇绳堡垦塑堡旦亘鎏这种方法实质是通过asm与endasm告诉Cx51编译器,中间行不用编译为汇编行,编译控制指令SRC用以控制将这些不用编译的行存入其中。具体操作方法与上相同,需要注意的是在直接使用形参时要小心,在不同的优先级别下产生的汇编代码有所不同,可以通过反汇编窗口或对应的.1st文件察看。5在汇编程序中调用C程序的方法在汇编程序中调用c程序的方法与在c程序中调用汇编程序的方法基本相同,也是先用C51编写出程序的主体,在程序中加入#pragmasrc(*.a51)控制命令,或在工程项目窗口中设置“GenerateAssemblerSRCFile”和“As—sembleSRCFile”选项,编译模块文件,得到相应的a51文件,按要求改写汇编代码。这样做是把汇编程序与C程序的接口和各种段的安排都交给编译器处理,减少编写程序的工作量。下例是一个在C程序中调用汇编程序而在汇编程序中又调用C程序的实例,全部用寄存器进行参数传递,在汇编程序中定义了2字节的局部变量MMP。汇编模块文件名为afunc.asm,汇编程序中接口与段的安排由编程者编写,其调用的c模块文件名为fund.C,模块程序如下:funcl.C模块文件,C函数名func()。#defineucharunsignedcharucharfuncl(uchara){//用寄存器传递无符号字符变量aucharb一100:ucharC;return(c—b/a);//函数返回值}//afunc.asm模块文件,有两字节的整形变量参数返回。PUBLICAFUNC//定义共公符号,“”表示有参数传递EXTRNCODE(一funcl)//~'b部函数runel声明,“”表示有参数传递?PR?afunc?AFUNCSEGMENTCODE//定义程序代码段PUBLIC//定义共公符号,为局部变量的共公符号I,I,TSEGMENTDATA0VERI,AYABLE//定义可覆盖局部数据段RSEGI.LTPPP:MMP:DS2//定义局部变量字节,MMP为局部变量,2两字节RSEG7PR?arune?AFUNC//程序代码段。fu。。://;X下为汇编程序MOVMMP+1,r7//c程序传递的整形变量参数MOVMMP,R6CLRCMOVA,MMP+1RLCAMOVMMP+1,AMOVA,MMPRI.CAMOVMMP,AMOVA,MMP+1ADDCA,#OOHMOVMMP+1,AMOVR7。MMP+1//无符号字符参数传递LCAI.Lrunel//c程序的调用MOVR7。MMP+1//函数返回值MOVR6,MMPRETEND应该注意的是汇编程序代码段的命名应与Cx51相同,如:?PR?afunc?AFUNC,否则在编译时将产生不能覆盖处理的警告,此时应必须保证每一个子程序或者程序分支都具有惟一的段名。参考文献[1]徐爱钧,彭秀华.KeilCxSlV7.0单片机高级语言编程与~Vision2应用实践LM].北京:电子工业出版社,2004.[2]胡伟,季晓衡.单片机c程序设计及应用实例[M].北京:人民邮电出版社,2003.[3]马忠梅.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,2004.作者简介张玉峰男,1963年出生,高级工程师。主要研究方向为电子技术应用。(上接第54页)E7]TanakaM,KanedaY.AFastProjectionAlgorithmforA—daptiveFiltering[J].IEICETrans.onFundamentalsofE—lectronics,CommunicationsandComputerSciences,1995,78(10):1355一1361.E8]GaySL,TavathiaS.TheFastAffineProjectionAlgorithm[J].Proc.ICASSP’95,Detroit,1995:3023—3026.E9]DouglasSC.EfficientApproximateImplementationsoftheFastAffineProjectionAlgorithmUsingOrthogonalTrans—formsEJ].Proc.12CASSP’96,Atlanta,1996:1657—1660.E10]FerraraER.FastImplementationofLMSAdaptiveFilter60[J].IEEETrans.Acoust.,Speech,SignalProcessing,1980,28(4):474—475.[11]何振亚.自适应信号处理[M].北京:科学出版社,2002.[12]燕列雅.初变换进行矩阵的QR分解[J].数学通报,1998(9).[13]ScottCDouglas.AdaptiveFiltersEmployingPartialUp—datesEJ].IEEETrans.onCAS—IIAnalogandDigitalSignalProcessing,1997,44(3):209—216.[14]AboulnasrT,MayyasK.SelectiveCoefficientUpdateofGradient—basedAdaptiveAlgorithmsEJ].Proc.ICASSP’96,1996:1929—1932.
阅读此文(图):
点击此处在线翻阅