通过C51编写的c语言与汇编语言有什么区别

作者&投稿:初冰 (若有异议请与网页底部的电邮联系)
c语言,c51语言,汇编语言,VDHL语言的区分与面向~

c语言是计算机通用编程语言;
C51是51系列单片机借用c语言的编程语言;
汇编语言是单片机常用的一种简单编程语言,难度很高;
VDHL是可编程逻辑器件的编辑语言,通过VDHL编辑,赋于器件你所需要的功能。

"keil c51与C语言的区别"这句话表达的有问题,keil只是一种编译软件,C语言是一种机器语言,两者没可比性。至于说汇编和C语言的优缺点很明显,汇编语言时间比较精准(一条语句一般是1~2个时钟周期),但是工程化不强,如果想建立较为复杂的工程一般都采用C语言。现在对于单片机编程一般都是采用C语言。不过一般都是先学习汇编,毕竟像keil这样的编译软件都是将C语言自动生成为汇编。先学习下汇编有助于对程序更为细节的了解。

你这个问题本质上也就是C和汇编的区别。

其实很简单,C是高级语言
为什么叫高级语言呢?
其实C语言就是汇编语言的一种进化也就是机器语言的一种进化。是一种表达方式而已。
举个例子给你看:

C语言:
if(a>b)
{
}
这样的一种表达式在汇编里面却变成了许多行代码。
汇编: cmp a,b
je/jne/ja/jb/....
所以这直接导致了理解和可读性。
直接看汇编代码需要在大脑内进行多重的转变而直接看c却是一目了然

这就是为什么汇编是低级语言而C却是高级语言的原因和区别。
汇编太注重细节,但是这样的细节完全是很苦力的活动.比如jmp指令,在汇编里面经常用到,而在C里面这样的指令都是根据语句来直接编译的,根本不需要你用大脑去想在哪跳转这不需要你关心,你只需要关心你的结构是不是正确的就OK,如此的东西在汇编里却不同,汇编不用关心你的结构和其他所有任何东西,汇编什么都不关心所以什么都需要你去关心,总之一句话,汇编小巧玲珑,C方便简洁.

另外一个例子:用汇编写代码是很消费时间的,因为各种结构都需要你去关心,大多数一句代码用错则程序全错,而C不同你可以看到C的大体结构不像汇编一样看不出来.C里面修改大致上的东西就可以达到汇编2-3小时的排错

c语言是高级语言,写好后是不能直接运行的需要编译,经过编译生成单片机专用的机器码后才能直接运行,但是经过编译后生成的机器码效率是要低于直接用汇编写出来的代码的,就好比你用汇编写一段程序生成的机器码只有5行,但是用c写出来编译后的机器码可能就有10行,效率低了,这就是区别了,但是用c的好处就是代码可读性强,比汇编容易编写,而且有些需要准确定时的语句可能就只能用汇编了,一般来说用c写就可以了,毕竟c号称“高级汇编”,效率也不算太低,个人推荐用c写

C语言是比较灵活的语言,可以自定义很多东西,更改也方便,适于编程,但是不利于机器读取;汇编就是一种机器语言,可以直接读取的语言,但是编程时候比较麻烦,有了错误也不容易修改。但是这个要用到单片机上还要再通过烧录机转换成机器代码,单从编写方面来说,没有什么区别

C编程灵活,如果变大的程序的话,优势很明显
而汇编语言的操作性、控制很强,而且执行快。
我所知道的,希望给你一点点帮助

借鉴借鉴~~~~~~


求单片机(c51)外部中断实验的c语言代码或者思路,要求在补充
include<reg51.h>#define uchar unsigned charvoid delay(void){uchar i,j;for(i=0;i<200;i++)for(j=0;j<120;j++);}void ext0() interrupt 0{uchar i;for(i=0;i<8;i++) { P2=0x00; delay(); P2=0xff; delay(); }}main(){uchar i;EX0=1;IT0=1;EA...

求用C语言编写的交通灯程序,C51单片机控制,无左转右转
\/\/以下代码经过Keil C51软件调试通过 include "reg51.h" \/\/头文件包含 \/\/宏定义 define uint unsigned int define uchar unsigned char define ON 0 \/\/0的时候灯亮 define OFF 1 \/\/1的时候灯亮 \/\/管脚定义 \/\/南北道 黄灯亮3秒 红灯亮 30秒 黄灯3秒 绿灯38秒 \/\/东西道 黄灯亮3秒 绿灯...

C51语言C51语言概述
这使得程序员能够直接操控硬件资源,实现对单片机的深度控制,对于已经掌握C语言基础的人来说,这是一个无缝的过渡。因此,如果你对C语言有所了解,那么转向C51语言进行单片机编程将会是一个既顺畅又富有挑战性的选择。它不仅能延续你的编程技能,还能让你在嵌入式世界中大展拳脚。

用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器...
用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器。用proteus做的时钟 可以显示年月日时分秒 可调整时间 有图 \/ includereg52.h

急求C51单片机C语言版编程高手。改进代码
\/\/我用的也是C51系列,可能有个别的接口不一样,但原理我已经说清楚了#include<reg51.h>\/\/我在这里面已经加进了uchar的宏定义#include<delay.h>\/\/自定义的一个延迟函数void int0()interrupt 0 using 1{INT0=0;\/\/当INT0=1时,外部中断启动if(P1==0x00)\/\/P1为LED控制口P1=0xff;P1=P1<<...

C51单片机多机通信C语言
单片机a,b,c. a为主机,bc为从机。a上有一个外部中断0输入,按第一次a的两个LED亮500ms,再按一下,b机的两个LED灯亮500ms,第三次按下c机的两个LED灯亮500ms,然后周而复始。两个数码管分别显示0\/1\/2, 和abc(bc由从机反馈) \/* 主从通信基本步骤: 1. 主机从机初始化为方式2或者3,从机都置SM2=1...

用c语言编写c51单片机源程序后缀是?
C语言编写的源程序,后缀是.c。头文件的后缀是.h。

用KIEL-C51的C语言编写一个键盘的管理程序,每个按键必须占用一根I\/O线...
void main(){ if((S0==0)&(S1!=0)&(S2!=0)) function_SE();else if ((S0!=0)&(S1==0)&(S2!=0)) function_SR();else if ((S0!=0)&(S1!=0)&(S2==0)) function_ST();} void function_SE(){ } void function_SR(){ } void function_ST(){ } ...

c51转换成c语言?
首先,你列出这是51单片机的汇编程序,可以称为A51程序,不宜称为C51程序。其次,你这个程序并不完整。大概可以译为:sbit P17 = P1^7;unsigned char gucR0;void main(){ P17=1;TMOD = 0x01;TH0 = 0xFE;TL0 = 0x0C;gucR0 = 7;ET0 = 1;EA = 1;TR0 = 1;while(1);} void ISR_...

C51语言的混合编程
C51编译器能对C语言源程序进行高效率的编译,生成高效简洁的代码,在绝大多数场合采用C语言编程即可完成预期的目的。但有时为了编程直观或某些特殊地址的处理,还须采用一定的汇编语言编程。而在另一些场合,出于某种目的,汇编语言也可调用C语言。在这种混合编程中,关键是参数的传递和函数的返回值。它们...

甘南县13552302893: 通过C51编写的c语言与汇编语言有什么区别
董朱瑞新: 你这个问题本质上也就是C和汇编的区别. 其实很简单,C是高级语言 为什么叫高级语言呢? 其实C语言就是汇编语言的一种进化也就是机器语言的一种进化.是一种表达方式而已. 举个例子给你看: C语言: if(a>b) { } 这样的一种表达式在汇...

甘南县13552302893: 单片机用C51和汇编语言写程序的区别 -
董朱瑞新: 仅仅是语言本身的区别,一个是用C语言,一个是用汇编语言若干年前汇编相对于C语言有性能上的优势,因为每条指令与机器马直接对应,做优化容易控制些.但如今编译器越来越强大,优化的结果也越来越好,汇编这点优势就不明显了.而C语言相对于汇编来说它的优势就在于它是高级语言,语法上更平易近人,也更易于读写,比如一个简单的加法操作://C语言 a = 1 + 2;//汇编 mov eax, 1 add eax, 2 mov a, eax你看哪个更容易读懂

甘南县13552302893: 在单片机开发过程中,经常会用到什么语言. -
董朱瑞新: 在单片机开发过程中,经常用到C语言和汇编语言.许多人会对单片机和C语言、汇编语言的关系表示疑问,下面就由福州卓跃教育为您具体介绍汇编语言是一种用文字助记符来表示及其指令的符号语言,是最接近机器码的一种语言,其主要优...

甘南县13552302893: c语言,c51语言,汇编语言,VDHL语言的区分与面向 -
董朱瑞新: c语言是计算机通用编程语言;C51是51系列单片机借用c语言的编程语言;汇编语言是单片机常用的一种简单编程语言,难度很高;VDHL是可编程逻辑器件的编辑语言,通过VDHL编辑,赋于器件你所需要的功能.

甘南县13552302893: 用什么语言可以给单片机编程 -
董朱瑞新: 我学单片机的时候是先学习汇编,这样可以充分了解51单片机的内部结构,能跑跑马灯了就行了. 然后转到c语言,因为c语言最简单了,汇编很麻烦,一般都用c,只有要求苛刻的地方才会用到汇编,因为汇编的代码生成的程序比c的好.

甘南县13552302893: C51单片机编程中C语言如何嵌套汇编语言
董朱瑞新: #include <reg52.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int sbit DS=P3^3; //定义DS18B20接口 int temp; uchar flag1; void display(unsigned char *lp,unsigned char lc);//数字的显示函数;lp为指向数组的地址...

甘南县13552302893: 请问单片机C语言是什么?谢谢!
董朱瑞新: Keil C51,是一种可以编译成51单片机汇编的C语言,和普通的C语言有差别的,比普通C更低级,有很多针对单片机的特殊语句,相对51汇编更容易写,容易维护,也提供了很多有用的函数.

甘南县13552302893: 汇编程序嵌入C程序 -
董朱瑞新: C51里面,汇编语言跟C语言可以互相调用,这我都试验过的,C调用汇编,汇编调用C!!!要这么做的话,汇编语言必须严格遵守Keil的格式,需要加入很多控制语句,一点都不能省(我曾经用C调用汇编,少了一个字符,编译的时候提示一...

甘南县13552302893: C51单片机编程中C语言如何嵌套汇编语言 -
董朱瑞新: #include #define uchar unsigned char #define uint unsigned int sbit DS=P3^3; //定义DS18B20接口 int temp; uchar flag1; void display(unsigned char *lp,unsigned char lc);//数字的显示函数;lp为指向数组的地址,lc为显示的个数 void delay(...

甘南县13552302893: c语言与汇编语言混合编程编译器 -
董朱瑞新: 可以使用asm关键字内嵌汇编语言,用VC++就可以 微软关于该关键字的详述:__asm关键字启动内联汇编并且能写在任何c/c++合法语句之处.它不能单独出现.它必须接汇编指令、一组被大括号包含的指令或一对空括号.术语“__asm 块”在这里...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网