




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
source group下的startup.a51文件有什么用?有这个文件在的时候我的编译会有警告,而删除这个文件的时候,编译会通过,当然后面调试会出问题。这个一个试验小程序:ORG 0100HMaIN:MOV a,#0FEHMOV a,P1RLaLCaLL DELaYaJMPMaINDELaY:MOVR7,#255D1:MOVR6,#255D2:DJNZ R6,D2DJNZ R7,D1RETEND是不是程序开头要加什么呢?答 1:程序开头应该再加:ORG 0000HLJMP MaIN答 2:Keil中的startup.a51文件一般不要,加了反而出错(不能通过编译).答 3:哦,多谢!Build target Target 1linking.* WaRNING L5: CODE SPaCE MEMORY OVERLaPFROM:0000HTO:0112H* WaRNING L1: UNRESOLVED EXTERNaL SYMBOLSYMBOL:?C_STaRTMODULE:STaRTUP.obj (?C_STaRTUP)* WaRNING L2: REFERENCE MaDE TO UNRESOLVED EXTERNaLSYMBOL:?C_STaRTMODULE:STaRTUP.obj (?C_STaRTUP)aDDRESS: 080aHProgram Size: data=9.0 xdata=0 code=290exam1 - 0 Error(s), 3 Warning(s).-这几个警告还是在阿 答 4:多谢我删了startup.a51后警告就没了 答 5:个人见解startup.a51的主要任务是完成了清理内存和建立堆栈的工作,然后跳转到C环境支持的初始化任务,如果使用纯汇编,是可以不需要这个文件的,但是需要处理好堆栈,当然也可以把你的代码写到这个文件里,把跳转入口指向你的程序入口,偷懒的做法 答 6:高见:谢谢啊!明白了它的用途了,因为一直写汇编程序,还没试过用Keil写以后希望能实践一下! 答 7:有些糊涂当然也可以把你的代码写到这个文件里-这句不大明白,如果使用汇编编程,初始化工作由你自己完成,可以不加.如果使用C编程,如果你在0000地址后会自己执行初始化等等其实也可以不加,否则一定要加另外,学习这个文件对你了解的工作也是很有价值的在51系列中data,idata,xdata,pdata的区别data:固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。 idata:固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式 访问的。汇编中的语句为:mox ACC,Rx.(不重要的补充:c中idata做指针式的访问效果很好) xdata:外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。 pdata:外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,Rx读写。这个比较特殊,而且C51好象有对此BUG, 建议少用。但也有他的优点,具体用法属于中级问题,这里不提。 startup.a51的作用 和汇编一样,在C中定义的那些变量和数组的初始化就在startup.a51中进行,如果你在定义全局变量时带有数值,如unsigned char data xxx=100;,那startup.a51中就会有相关的赋值。如果没有=100,startup.a51就会把他清0。(startup.a51=变量的初始化)。 这些初始化完毕后,还会设置SP指针。对非变量区域,如堆栈区,将不会有赋值或清零动作。 有人喜欢改startup.a51,为了满足自己一些想当然的爱好,这是不必要的,有可能错误的。比如掉电保护的时候想保存一些变量, 但改startup.a51来实现是很笨的方法,实际只要利用非变量区域的特性,定义一个指针变量指向堆栈低部:0xff处就可实现。, 为什么还要去改? 可以这么说:任何时候都可以不需要改startup.a51,如果你明白它的特性初学者编程最简练的指导点击: 36, 文章入库日期: 2008-04-24 11:47:31, 来源: 这里讲述一些初学者学习c51的一些误区和注意事项。高手的特别应用不包括在内。1)c忌讳绝对定位。常看见初学者要求使用_at_,这是一种谬误,把c当作asm看待了。在c中变量的定位是编译器的事情,初学者只要定义变量和变量的作用域,编译器就把一个固定地址给这个变量。怎么取得这个变量的地址?要用指针。比如unsigned char data x;后,x的地址就是&x,你只要查看这个参数,就可以在程序中知道具体的地址了。所以俺一看见要使用绝对定位的人,第一印象就是:这大概是个初学者。2)设置sp的问题。原因和1差不对,编译器在把所有变量和缓冲区赋予地址后,自动把最后一个字节开始的地方,作为sp的开始位置,所以初学者是不必要去理会的。这体现c的优越性,很多事情c编译时候做了。3)用c的主程序结构:#includevoid main(void)while(1);这是个最小的成功的c程序,包括头部文件和程序主体。头部文件的名词解释:引用的外部资源文件,这个文件包括了硬件信息和外部模块提供的可使用的函数和变量的说明。可以用文本方式打开reg52.h,仔细研究下,会有一些写程序的体会。4)这样构成一个c项目在c中,常用项目来管理。项目一般分为两大块:c文件块和头部文件块。我们常把不同功能写在不同的c文件中,依靠项目的管理,最后把所有文件连接起来,这样就可以得到可以烧录的hex文件或bin文件。这些c文件中,有且只有唯一一个包括main()函数,和3)中一样的c文件。用头部文件把各个不同的c互相连接起来。一个c文件基本上要对应有一个h头部文件,这个h文件就包含本c文件中可以提供给外面使用的变量和函数,没有在h文件中列出的文件,可以算是该c文件的内部函数和变量,外部c不能使用。例子:a.c:unsigned char i;unsigned char mwork;void test1(void)mwork+;void test2(void)i+;a.h文件中:extern unsigned char i;extern void test1(void);这样主程序m.c中:#include/*c编译器内部自带的h文件,使用*/#include a.h /*自定义的h文件,一般用*/void main(void)test1(); /*使用a.c模块文件中的函数*/while(1)i+; /*使用a.c模块文件中的变量*/5)51家族核心都是基于8031的,有很多在此核心上进行扩展,有的把程序存储器放在内部:89c(s)51.,有的增加了ram:89c(s)52.,有的增加了一些专用硬件80c552.,有的改变时钟时序w77e58.。市面上现在常用的主要有atmel公司的at89x系列,philips的p87(89)x,台湾winbond的w77(78)x系列,cygnal的c8051fx系列。6)51单片机结构的c描述这里不讲51的具体结构,只是引导初学者快速理解51单片机的物理结构。寄存器和io及其它硬件设备的地址名称,在相应的c头部文件中可以找到。51为reg51.h,52为reg52.h,以次类推,比如winbond的78e58就为w78e58.h这些h文件中的描述:srf,定义一个8位的设备。srf16,定义一个16位的设备。sbit,定义一个位的设备。用这些语句定义后,就可以在c中象汇编一样使用这些硬件设备,这是单片机应用比标准c特殊的地方,其它差别很少。7)在51系列中data,idata,xdata,pdata的区别data:固定指前面0x00-0x7f的128个ram,可以用acc直接读写的,速度最快,生成的代码也最小。idata:固定指前面0x00-0xff的256个ram,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似c中的指针方式访问的。汇编中的语句为:mox acc,rx.(不重要的补充:c中idata做指针式的访问效果很好)xdata:外部扩展ram,一般指外部0x0000-0xffff空间,用dptr访问。pdata:外部扩展ram的低256个字节,地址出现在a0-a7的上时读写,用movx acc,rx读写。这个比较特殊,而且c51好象有对此bug,建议少用。但也有他的优点,具体用法属于中级问题,这里不提。8)startup.a51的作用和汇编一样,在c中定义的那些变量和数组的初始化就在startup.a51中进行,如果你在定义全局变量时带有数值,如unsigned chardata xxx=100;,那startup.a51中就会有相关的赋值。如果没有=100,startup.a51就会把他清0。(startup.a51=变量的初始化)。这些初始化完毕后,还会设置sp指针。对非变量区域,如堆栈区,将不会有赋值或清零动作。有人喜欢改startup.a51,为了满足自己一些想当然的爱好,这是不必要的,有可能错误的。比如掉电保护的时候想保存一些变量,但改startup.a51来实现是很笨的方法,实际只要利用非变量区域的特性,定义一个指针变量指向堆栈低部:0xff处就可实现,为什么还要去改?可以这么说:任何时候都可以不需要改startup.a51,如果你明白它的特性使用中的几个问题按前两节提供的硬件电路图和监控程序,如果仿真板与目标系统连接无误,就可调试使用。但仿真板与目标系统连接有问题或Keil C51软件设置不当会遇到一些麻烦,在程序调试中的主要错误与警告有:ERROR 22:NO CODE MEMORY AT 0x80xx,这是因为仿真板用于存放用户程序的外部数据存储空间与目标系统地址存在冲突。应检查硬件电路予以解决。ERROR L107:ADDRESS SPACE OVERFLOW,这是因为用户程序大于Vision2中设定的允许长度。可将用户程序允许长度设到仿真板许可的最大值;若还不能解决,可将程序分段进行调试。WARNNING L1:NURESOLVED EXTERNAL SYMBOL,多数程序员都遇到过此警告,这是由于在生成Monitor-51监控程序时(执行INSTALL批处理命令)没有使用BANK选项。解决方法是将Startup.A51文件中第140、141行最前面加“;”号注释掉。Startup.A51是加入到用户工程文件中的汇编程序,使用Monitor-51仿真板必须加入此文件。由于Monitor-51仿真板比较简单,占用了一些系统资源,有时给用户带来了不便。程序员实际编程中常要解决以下两个问题:(1)串行接口功能:串行通信是MCS51单片机经常要用到的功能,而MCS-51系列单片机只有一个串行通信接口,在与PC机相连的仿真状态时,串口用于与PC机通信。若在应用程序中也用到串行口,就会发生冲突。解决方法是用户程序装载完毕后,运行用户程序,再断开仿真板与PC机的串行通信线。这样串口就可归用户程序使用了,当然这时PC机就不能在线调试了。(2)外部存储空间:用户程序越长,占用的外部数据存储空间将越大。解决的方法是对较长的程序进行分段调试,所有的程序完成后在软件仿真状态(不用Monitor-51仿真板)生成一个完整的HEX文件。另外,如果系统中还有其它接口器件占用外部数据存储空间,要合理安排。如有一EEPROM要存放历史数据,可以在调试过程中用#define预处理命令将存放历史数据的存储空间定义在较小的范围内,程序编完后再修改范围进行编译生成HEX文件。笔者有多年的汇编语言编程经历,改用Keil C51后感觉很好,编程效率大为提高。经过一段时间摸索,自制成了Monitor-51仿真板。使用Monitor-51仿真板,给调试程序带来了极大的方便。虽然仿真板占用了一些系统资源,但经合理安排,一般的应用程序还是可以承受的。 Keil中C与汇编混合编程的方法2007-06-06 17:31 如何在 KEIL C51(v6.21) 中调用汇编函数的一个示例 ycong_kuang有关c51调用汇编的方法已经有很多帖子讲到,但是一般只讲要点,很少有对整个过程作详细描述,对于初学者是不够的,这里笔者通过一个简单例子对这个过程进行描述,希望能对初学者有所帮助。几年来,在这个论坛里笔者得到很多热心人指导,因此也希望藉此尽一点绵薄之力。在这个例子里,阐述了编写c51程序调用汇编函数的一种方法,这个外部函数的入口参数是一个字符型变量和一个位变量,返回值是一个整型变量。例中,先用c51写出这个函数的主体,然后用SRC控制指令编译产生asm文件,进一步修改这个asm文件就得到我们所要的汇编函数。该方法让编译器自动完成各种段的安排,提高了汇编程序的编写效率。step1. 按写普通c51程序方法,建立工程,在里面导入main.c文件和CFUNC.c文件。相关文件如下:/main.c文件#include #define uchar unsigned char#define uint unsigned intextern uint AFUNC(uchar v_achr,bit v_bflag);void main() bit BFLAG; uchar mav_chr; uint mvintrslt; mav_chr=0xd4; BFLAG=1; mvintrslt=AFUNC(mav_chr,BFLAG);/CFUNC.c文件#define uchar unsigned char#define uint unsigned intuint AFUNC(uchar v_achr,bit v_bflag) uchar tmp_vchr; uint tp_vint; tmp_vchr=v_achr; tp_vint=(uint)v_bflag; return tmp_vchr+(tp_vint8);step2. 在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for .”,点击右边的“Generate Assembler SRC File”和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;step3. 根据选择的编译模式,把相应的库文件(如 Small 模式时,是 KeilC51LibC51S.Lib)加入工程中,该文件必须作为工 程的最后文件;step4. build这个工程后将会产生一个CFUNC.SRC的文件,将这个文件改名为CFUNC.A51(也可以通过编译选项直接产生CFUNC.A51文 件),然后在工程里去掉库文件(如C51S.Lib)和CFUNC.c,而将CFUNC.A51添加到工程里。/CFUNC.SRC文件如下.CFUNC.SRC generated from: CFUNC.cNAME CFUNC?PR?_AFUNC?CFUNC SEGMENT CODE?BI?_AFUNC?CFUNC SEGMENT BIT OVERLAYABLE PUBLIC ?_AFUNC?BIT PUBLIC _AFUNC RSEG ?BI?_AFUNC?CFUNC?_AFUNC?BIT: v_bflag?041: DBIT 1; #define uchar unsigned char; #define uint unsigned int; uint AFUNC(uchar v_achr,bit v_bflag) RSEG ?PR?_AFUNC?CFUNC_AFUNC: USING 0 ; SOURCE LINE # 5;- Variable v_achr?040 assigned to Register R7 -; ; SOURCE LINE # 6; uchar tmp_vchr; uint tp_vint; tmp_vchr=v_achr; ; SOURCE LINE # 10;- Variable tmp_vchr?042 assigned to Register R5 - MOV R5,AR7; tp_vint=(uint)v_bflag; ; SOURCE LINE # 11 MOV C,v_bflag?041 CLR A RLC A;- Variable tp_vint?043 assigned to Register R6/R7 -; return tmp_vchr+(tp_vint8); ; SOURCE LINE # 12 MOV R6,A MOV R4,#00H CLR A ADD A,R5 MOV R7,A MOV A,R4 ADDC A,R6 MOV R6,A; ; SOURCE LINE # 13?C0001: RET; END OF _AFUNC ENDstep5. 检查main.c的“Generate Assembler SRC File”和“Assemble SRC File”是否有效,若是有效则点击使检查框变成无效状 态;再次build这个工程,到此你已经得到汇编函数的主体,修改函数里面的汇编代码就得到你所需的汇编函数了。参考文献: 1.徐爱钧,彭秀华。单片机高级语言C51windows环境编程与应用,电子工业出版社 2., C51编程:关于在 KEIL C51 中直接嵌入汇编。帖子编号: 83838 发表用户:Youth . keil中汇编函数调用c51函数 ycong_kuang在keil的写法可参考89852帖子,具体如下:与89852帖子相比,第一步在工程里多了一个被汇编调用的c51的函数文件(c51func.c),至于汇编函数还是先用c51编写出主体(a51func.c),这样汇编程序接口和段都交给编译器处理,你只管在编译成汇编代码后按你的要求改写汇编代码就行了。例程如下:/main.c#include #define uchar unsigned char#define uint unsigned intextern uint AFUNC(uchar v_achr,bit v_bflag);void main() bit BFLAG; uchar mav_chr; uint mvintrslt; mav_chr=0xd4; BFLAG=1; mvintrslt=AFUNC(mav_chr,BFLAG);/a51FUNC.c#define uchar unsigned char#define uint unsigned intextern uint CFUNC(uint);uint AFUNC(uchar v_achr,bit v_bflag)/c51写的汇编函数,最终要变成汇编代码 uchar tmp_vchr; uint tp_vint; tmp_vchr=v_achr; tp_vint=(uint)v_bflag; return CFUNC(tp_vint);/这里调用一个c51函数/c51FUNC.c#define uchar unsigned char#define uint unsigned intuint CFUNC(uint v_int)/被汇编函数调用c51函数 return v_int2;第二步是按89852帖子的step2,3,4把用c51写的(汇编)函数变成a51文件(今天我试了一下step3可以不要)例程编译结果如下:; .a51func.SRC generated from: a51func.cNAME A51FUNC?PR?_AFUNC?A51FUNC SEGMENT CODE?DT?_AFUNC?A51FUNC SEGMENT DATA OVERLAYABLE?BI?_AFUNC?A51FUNC SEGMENT BIT OVERLAYABLE EXTRN CODE (_CFUNC) PUBLIC ?_AFUNC?BIT PUBLIC _AFUNC RSEG ?DT?_AFUNC?A51FUNC?_AFUNC?BYTE: tmp_vchr?042: DS 1 RSEG ?BI?_AFUNC?A51FUNC?_AFUNC?BIT: v_bflag?041: DBIT 1; /a51FUNC.c; #define uchar unsigned char; #define uint unsigned int; extern uint CFUNC(uint); uint AFUNC(uchar v_achr,bit v_bflag) RSEG ?PR?_AFUNC?A51FUNC_AFUNC:;c51所写的函数产生的汇编代码从这里开始 USING 0 ; SOURCE LINE # 8;- Variable v_achr?040 assigned to Register R7 -; ; SOURCE LINE # 9; uchar tmp_vchr; uint tp_vint; tmp_vchr=v_achr; ; SOURCE LINE # 13 MOV tmp_vchr?042,R7; tp_vint=(uint)v_bflag; ; SOURCE LINE # 14 MOV C,v_bflag?041 CLR A MOV R6,A RLC A MOV R7,A;- Variable tp_vint?043 assigned to Register R6/R7 -; 这里说明R6,R7内容就是tp_vint; return CFUNC(tp_vint); ; SOURCE LINE # 16 LCALL _CFUNC;这里调用了用c51写的函数; ; SOURCE LINE # 17?C0001: RET; END OF _AFUNC END这个文件就是你的汇编函数所在文件,把函数里面的汇编代码修改成你所需的汇编函数就ok了。建议参考 徐爱钧,彭秀华所写的单片机高级语言C51windows环境编程与应用或马忠梅所写的单片机的c语言应用程序设计有关混合语言编程有关章节 . 关于在 KEIL C51 中直接嵌入汇编。 Youth有时在C51程序中需要嵌入一些汇编代码,这时当然可以用通常的作法:按照 C51 与汇编的接口写一个汇编函数,然后在 C51 程序中调用该函数。(此种方法可在论坛里搜索,以前有很多帖子讲到,不再重复)下面介绍直接嵌入汇编代码的方法:1、在 C 文件中要嵌入汇编代码片以如下方式加入汇编代码:#pragma ASM; Assembler Code Here#pragma ENDASM2、在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for .”,点击右边的“Generate Assembler SRC File”和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;3、根据选择的编译模式,把相应的库文件(如 Small 模式时,是 KeilC51LibC51S.Lib)加入工程中, 该文件必须作为工程的最后文件;4、编译,即可生成目标代码。 如何在 KEIL C51(v6.21) 中调用汇编函数的一个示例 ycong_kuang有关c51调用汇编的方法已经有很多帖子讲到,但是一般只讲要点,很少有对整个过程作详细描述,对于初学者是不够的,这里笔者通过一个简单例子对这个过程进行描述,希望能对初学者有所帮助。几年来,在这个论坛里笔者得到很多热心人指导,因此也希望藉此尽一点绵薄之力。在这个例子里,阐述了编写c51程序调用汇编函数的一种方法,这个外部函数的入口参数是一个字符型变量和一个位变量,返回值是一个整型变量。例中,先用c51写出这个函数的主体,然后用SRC控制指令编译产生asm文件,进一步修改这个asm文件就得到我们所要的汇编函数。该方法让编译器自动完成各种段的安排,提高了汇编程序的编写效率。step1. 按写普通c51程序方法,建立工程,在里面导入main.c文件和CFUNC.c文件。相关文件如下:/main.c文件#include #define uchar unsigned char#define uint unsigned intextern uint AFUNC(uchar v_achr,bit v_bflag);void main() bit BFLAG; uchar mav_chr; uint mvintrslt; mav_chr=0xd4; BFLAG=1; mvintrslt=AFUNC(mav_chr,BFLAG);/CFUNC.c文件#define uchar unsigned char#define uint unsigned intuint AFUNC(uchar v_achr,bit v_bflag) uchar tmp_vchr; uint tp_vint; tmp_vchr=v_achr; tp_vint=(uint)v_bflag; return tmp_vchr+(tp_vint8);step2. 在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for .”,点击右边的“Generate Assembler SRC File”和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;step3. 根据选择的编译模式,把相应的库文件(如 Small 模式时,是 KeilC51LibC51S.Lib)加入工程中,该文件必须作为工 程的最后文件;step4. build这个工程后将会产生一个CFUNC.SRC的文件,将这个文件改名为CFUNC.A51(也可以通过编译选项直接产生CFUNC.A51文 件),然后在工程里去掉库文件(如C51S.Lib)和CFUNC.c,而将CFUNC.A51添加到工程里。/CFUNC.SRC文件如下.CFUNC.SRC generated from: CFUNC.cNAME CFUNC?PR?_AFUNC?CFUNC SEGMENT CODE?BI?_AFUNC?CFUNC SEGMENT BIT OVERLAYABLE PUBLIC ?_AFUNC?BIT PUBLIC _AFUNC RSEG ?BI?_AFUNC?CFUNC?_AFUNC?BIT: v_bflag?041: DBIT 1; #define uchar unsigned char; #define uint unsigned int; uint AFUNC(uchar v_achr,bit v_bflag) RSEG ?PR?_AFUNC?CFUNC_AFUNC: USING 0 ; SOURCE LINE # 5;- Variable v_achr?040 assigned to Register R7 -; ; SOURCE LINE # 6; uchar tmp_vchr; uint tp_vint; tmp_vchr=v_achr; ; SOURCE LINE # 10;- Variable tmp_vchr?042 assigned to Register R5 - MOV R5,AR7; tp_vint=(uint)v_bflag; ; SOURCE LINE # 11 MOV C,v_bflag?041 CLR A RLC A;- Variable tp_vint?043 assigned to Register R6/R7 -; return tmp_vchr+(tp_vint8); ; SOURCE LINE # 12 MOV R6,A MOV R4,#00H CLR A ADD A,R5 MOV R7,A MOV A,R4 ADDC A,R6 MOV R6,A; ; SOURCE LINE # 13?C0001: RET; END OF _AFUNC ENDstep5. 检查main.c的“Generate Assembler SRC File”和“Assemble SRC File”是否有效,若是有效则点击使检查框变成无效状 态;再次build这个工程,到此你已经得到汇编函数的主体,修改函数里面的汇编代码就得到你所需的汇编函数了。参考文献: 1.徐爱钧,彭秀华。单片机高级语言C51windows环境编程与应用,电子工业出版社 2., C51编程:关于在 KEIL C51 中直接嵌入汇编。帖子编号: 83838 发表用户:Youth . keil中汇编函数调用c51函数 ycong_kuang在keil的写法可参考89852帖子,具体如下:与89852帖子相比,第一步在工程里多了一个被汇编调用的c51的函数文件(c51func.c),至于汇编函数还是先用c51编写出主体(a51func.c),这样汇编程序接口和段都交给编译器处理,你只管在编译成汇编代码后按你的要求改写汇编代码就行了。例程如下:/main.c#include #define uchar unsigned char#define uint unsigned intextern uint AFUNC(uchar v_achr,bit v_bflag);void main() bit BFLAG; uchar mav_chr; uint mvintrslt; mav_chr=0xd4; BFLAG=1; mvintrslt=AFUNC(mav_chr,BFLAG);/a51FUNC.c#define uchar unsigned char#define uint unsigned intextern uint CFUNC(uint);uint AFUNC(uchar v_achr,bit v_bflag)/c51写的汇编函数,最终要变成汇编代码 uchar tmp_vchr; uint tp_vint; tmp_vchr=v_achr; tp_vint=(uint)v_bflag; return CFUNC(tp_vint);/这里调用一个c51函数/c51FUNC.c#define uchar unsigned char#define uint unsigned intuint CFUNC(uint v_int)/被汇编函数调用c51函数 return v_int2;第二步是按89852帖子的step2,3,4把用c51写的(汇编)函数变成a51文件(今天我试了一下step3可以不要)例程编译结果如下:; .a51func.SRC generated from: a51func.cNAME A51FUNC?PR?_AFUNC?A51FUNC SEGMENT CODE?DT?_AFUNC?A51FUNC SEGMENT DATA OVERLAYABLE?BI?_AFUNC?A51FUNC SEGMENT BIT OVERLAYABLE EXTRN CODE (_CFUNC) PUBLIC ?_AFUNC?BIT PUBLIC _AFUNC RSEG ?DT?_AFUNC?A51FUNC?_AFUNC?BYTE: tmp_vchr?042: DS 1 RSEG ?BI?_AFUNC?A51FUNC?_AFUN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度中国石化春季招聘统一初选考试笔试参考题库附带答案详解
- 陕西能源职业技术学院《工程计量与计价(安装)》2023-2024学年第二学期期末试卷
- 上海城建职业学院《软件设计与文档写作实训》2023-2024学年第二学期期末试卷
- 昭通学院《电工电子技术(二)》2023-2024学年第二学期期末试卷
- 西安信息职业大学《卫生事业管理学》2023-2024学年第二学期期末试卷
- 朝阳师范高等专科学校《建筑测绘与模型制作》2023-2024学年第二学期期末试卷
- 金华职业技术学院《专修二(1)》2023-2024学年第二学期期末试卷
- 上海工会管理职业学院《材料近代研究方法》2023-2024学年第二学期期末试卷
- 焦作新材料职业学院《公共政策审计》2023-2024学年第二学期期末试卷
- 浙江国际海运职业技术学院《机器人学》2023-2024学年第二学期期末试卷
- 2024年广西职业院校技能大赛高职组《区块链技术应用》赛项样卷
- 【MOOC】三维建模基础-深圳职业技术学院 中国大学慕课MOOC答案
- 2023年高考真题-政治(福建卷) 含解析
- 上肢深静脉血栓护理
- 使用错误评估报告(可用性工程)模版
- 《中国传统民居建筑》课件
- 2024年九年级语文中考专题复习现代文阅读(含答案)
- 工业园区河流污染治理方案
- 2024年高考全国甲卷英语试卷(含答案)
- 政府购买运输服务协议
- 电梯临时用电施工方案
评论
0/150
提交评论