Keil C51与汇编的区别是什么

如题所述

C51可以用标准C语言(以及一定的扩展)来书写源程序,所以具有更好的通用性、可读性和可维护性。缺点是有时候无法精准地进行细微操作,执行效率也会为了“通用性”而做出一定(某些情况下,巨大)的牺牲。

汇编语言直接用指令助记符书写,更接近于机器语言,对程序的控制更精细、代码效率更高。缺点是对于不熟悉51指令的人而言阅读很困难,并且代码块一旦跨平台移植就得重写。

温馨提示:内容为网友见解,仅供参考
第1个回答  2023-12-28
随着单片机硬件性能的提高,编写应用程序更着重于程序本身的效率。

Franklin或KEII.C51交叉编译器是专为51系列单片机设计的一种高效的C语言编译器,用其开发的应用程序易于维护,可移植性好,是目前较流行的51系列单片机的开发工具。

一、C51语言程序设计的基本技巧

首先,C51语言程序设计要尽可能采用结构化的设计方法。可将整个程序按功能分成若干个模块,不同的模块完成不同的功能。对于不同的功能模块,分别指定相应的入口参数和出口参数,而经常使用的一些程序最好编成函数,这样既不会引起整个程序管理的混乱,还可使程序的可读性、移植性增强。

C51语言的主程序结构:

#include

main0{while(1);}

这是最小的C程序,包括头部文件和程序主体。头部文件为引用的外部资源文件,包括硬件信息和外部模块提供的可使用的函数和变量的说明。

语句定义后,就可以在C语言程序中像汇编一样使用这些硬件设备。

在C5l中常用项目来管理,项目一般分为C文件块和头部文件块,常把不同的功能写在不同的C文件中,依靠项目的管理,最后把所有文件连接起来,这样就可以得到烧录的HEX文件或BIN文件。没有在头部文件中列出的文件,可以算是该C文件的内部函数和变量,外部C不能使用。另外,在程序设计过程中要充分利用C51语言的预处理命令。

对于一些常用的常数,如TRUE、FAlSE、PI,以及各种特殊功能寄存器,或程序中一些重要的依据外界条件可变的常量,可采用宏定义(#de-fine)或集中起来放在一个头文件中进行定义,再采用文件包含命令(#in-elude)将其加入到程序中,这样当需要修改某个参量时,只需修改相应的包含文件或宏定义,而不必对使用它们的每个程序文件都进行修改,有利于文件的维护和更新。

举例:利用宏定义和条件编译,源程序不作任何修改就可适用于不同时钟频率的单片机系统,并可根据情况的不同取不同的delay值,完成不同的目的。程序如下:

#define flag 1#ifdef flag==l#define fose 6Mdelay=10;#elif flag==0#define fose 8Mdelay=12;#else#define fosc 12Mdelay=20;#endiFMain0{ for(I=O;l

Keil C51与汇编的区别是什么
C51可以用标准C语言(以及一定的扩展)来书写源程序,所以具有更好的通用性、可读性和可维护性。缺点是有时候无法精准地进行细微操作,执行效率也会为了“通用性”而做出一定(某些情况下,巨大)的牺牲。汇编语言直接用指令助记符书写,更接近于机器语言,对程序的控制更精细、代码效率更高。缺点是对于不...

keil c51用汇编语言编程用法一样么
是一样的,文件的扩展名要是汇编的.asm,不要用.c

主流C51单片机编译器比对
51单片机用的最多的就是keil C51编译器,比较通用。什么51都可以,只要到其厂商的官方网站上面下个相应的驱动程序就可以了

Keil C51用C写单片机程序能不能像汇编那样跳转到任意地方?
楼上说得对,C51语言在算法上,逻辑关系上,的确比汇编优秀得多,也容易看明白,C51程序的设计,不管是在硬件上,还是在软件上,个人建议都采用统一的模块化设计,这样在调试和修改,维护上都方便得多,主程序一般都是由多个子函数构成,什么时候需要直接调用就行了,比起汇编在调用的地址范围上的限制,...

keil c51用汇编语言编程用法一样么
C编译的时候。会多出一些东西来是正常的。因为 编译器 不是针对某一个MCU来做的。所以,它在编译的时候往往会参考INTEL的芯片结构来做。你可以找一些C语言编译优化等资料来看看。写程序的时候,把运算的代码尽可能的分行来写,特别是IF等语句不要执行带运算的判断。少一个跳转的情况。尽量的少使用...

我初学单片机,看网上有人说keil有人说keilC,这两者有区别吗?是不同的...
是一个软件,每个人习惯叫法不同而已。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,...

keil c51与C语言的区别,以及在单片机编程中C与汇编的优缺点~~~麻烦了...
"keil c51与C语言的区别"这句话表达的有问题,keil只是一种编译软件,C语言是一种机器语言,两者没可比性。至于说汇编和C语言的优缺点很明显,汇编语言时间比较精准(一条语句一般是1~2个时钟周期),但是工程化不强,如果想建立较为复杂的工程一般都采用C语言。现在对于单片机编程一般都是采用C语言。...

什么是keil c51
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些...

Keil C51语言具有哪些特点
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点...

C51单片机用的是C语言还是汇编语言?谢谢
两种语言都可以,因为最后烧写到芯片中的是二进制文件,该二进制文件由编辑器(如KEIL)编译连接C语言源码,或者汇编语言源码获得

相似回答
大家正在搜