--转载自:http://blog.21ic.com/user1/6088/archives/2010/68469.html

  方法:(假设当前工程中只有一个C代码文件)

  第1步:新建一个工程,添加C文件,编译通过

  第2步:右击Keil界面中Project Workspace里的C文件名,选择‘Option for…’

  第3步:点击‘Generate Assembler SRC File’‘Assemble SRC File’两个三态复选框使它们呈高亮并勾选,点击确定

  第4步:将KEIL安装目录下C51/LIB/C51S.LIB(如果是SMALL模式)文件复制到工程目录下

  第5步:添加库文件C51S.LIB文件到工程,即右击‘Source Group 1’,选择‘Add Files to Group …’,在工程目录下选择C51S.LIB,点击打开(因为有了第3步中的操作,如果在这里不添加库文件,则编译生成的HEX文件不能被单片机正确执行,同时编译时会出现一个警告:

  WARNING L1:UNRESOLVED EXTERNAL SYMBOL
  SYMBOL:  ?C_STARTUP

  无法识别?C_STARTUP这个标号,这个标号是在库文件中定义。

  第6步:打开工程目录,可以看到新生成一个扩展名为.SRC的文件,将其扩展名改成.A51

  第7步:添加这个.A51文件到工程(这时候工程就包含C51S.LIB库文件,不然编译会产生第5步中说明的警告,且生成的HEX文件不能被单片机正确运行)

  第8步:重新编译,生成HEX文件,加载到单片机中,可以发现与C语言运行的现象是一致的

关于如何将C语言源文件转化为汇编文件的更多相关文章

  1. java语言实现对程序设计语言源文件统计字符数、单词数、行数及其他拓展功。

    本次作业Github项目地址:https://github.com/YiChenglong2018/WordCount 一.项目简介 本项目的需求可以概括为:对程序设计语言源文件统计字符数.单词数.行 ...

  2. C语言中 *.c和*.h文件的区别!

    C语言中 *.c和*.h文件的区别!  http://blog.163.com/jiaoruijun07@126/blog/static/68943278201042064246409/        ...

  3. Mac上把python源文件编译成so文件

    把python源文件编译成so文件 前言 实际上属于一种代码混淆/加密的技术,大家知道python的源文件放在那里,大家是都可以看的,不像C语言编译出来可以拿编译后的东西去运行,所以就出现了这种需求. ...

  4. 一份关于Swift语言学习资源的整理文件

    一份关于Swift语言学习资源的整理文件     周银辉 在这里下载 https://github.com/ipader/SwiftGuide

  5. Linux内核--C语言中内嵌汇编 asm __volatile__

    在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可 ...

  6. Linux内核系列—C语言中内嵌汇编 asm __volatile__,asm__volatile_【转】

    转自:http://www.bkjia.com/Androidjc/1109412.html 在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器, ...

  7. idea src下源文件和class编译文件不一致

    今天遇到一个神奇BUG,一个和elasticsearch没有任何关系的项目,报错ES某个包找不到,刚开始以为是依赖了父项目的某个包,并且本项目主启动类ComponentScan扫描了相关的类进入Spr ...

  8. C语言第十二讲,文件操作.

    C语言第十二讲,文件操作. 一丶文件操作概述 在操作系统中,我们的文档都称为文件.操作系统也为我们提供了接口进行操作.不同语言都是使用的相同的接口,只不过封装的上层接口不一样 操作文件的步骤 打开文件 ...

  9. matlab下将图片序列转化为视频文件 && 将为视频文件转化图片序列

    将图片序列转化为视频文件 程序如下: framesPath = 'E:\img\';%图像序列所在路径,同时要保证图像大小相同 videoName = 'Bolt.avi';%表示将要创建的视频文件的 ...

随机推荐

  1. 15、Cocos2dx 3.0游戏开发找小三之Sprite:每一个精灵都是上辈子折翼的天使

    重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/30475395 Sprite  Sprite 能够说是 ...

  2. hdu 3642 Get The Treasury(扫描线)

    pid=3642" style="">题目链接:hdu 3642 Get The Treasury 题目大意:三维坐标系,给定若干的长方体,问说有多少位置被覆盖3次 ...

  3. 限制 UITextField 输入长度

    限制 UITextField 输入长度 标签(空格分隔): UITextField UITextField 是 iOS 中最经常使用的组件之中的一个.关于它也有各种各样的需求,这些需求是它本身没有提供 ...

  4. ExtJS学习-----------Ext.String,ExtJS对javascript中的String的扩展

    关于ExtJS对javascript中的String的扩展,能够參考其帮助文档,文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 以 ...

  5. java中打开说明文档

    if (e.getSource() == itemUseAbout) { // 选择使用说明菜单,打开使用说明的.doc文档            try {                Proce ...

  6. IntPtr与自定义结构互转

    //IntPtr转自定义结构 struct onlydata { IntPtr hwnd; }; onlydata pd=new onlydata(); IntPtr pd; pd=Marshal.P ...

  7. IDL实现主成分变化(PCA)

    IDL只能通过调用envi的二次接口做图像的变换,但是对于普通的数据没有提供函数.根据主成分变换的原理,用IDL写出来了,这样就不用每次再去用matlab的princomp去做了.主成分变化的基本过程 ...

  8. TCO 2015 Round 1B DIV1 500 概率题

    [题意]现在有一些线索,每个线索被发现的概率p[i],如果线索i被知道,那么其他线索也可能会被知道,用vector<string> c给出,c[i][j]='Y'表示知道i这个线索,j这个 ...

  9. (转)php中__autoload()方法详解

    转之--http://www.php100.com/html/php/lei/2013/0905/5267.html PHP在魔术函数__autoload()方法出现以前,如果你要在一个程序文件中实例 ...

  10. eclipse打包jar时包含第三方jar包的相关问题

    我用的是mars4.5版本的eclipse 需求:要把写好的工程打成jar包,并能直接运行.工程用了若干个第三方jar. 在打包的时候,eclipse提供的打包方法不能引用第三方jar包,导致了出现C ...