① 请问各位能人:c语言和汇编语言有啥联系比如先学c再学汇编好,还是先学汇编再学c
两者之间没有什么联系,第一代C语言就是用汇编写的。汇编是比C语言低级的语言。现在已经很少有人能够掌握它了。C语言是其它语言的基础。它是面向过程的语言。学好了C,以后学习其它语言就很容易了。linux下的编程主要用的还是c语言。在windows下,现在主要是用面向对像语言,如java,c++。但这两个语言都与c语言有着千丝万缕的关系
② 为什么不用汇编语言编写程序而发展为用c语言来编写程序呢 程序设计的任务有哪些
1、提高编程的效率。汇编语言是低级语言,编制程序的过程漫长,不易掌握,使用者稀少。而c语言正好相反。
2、程序设计的任务:弄清问题,提出解决方案,画出程序框图,转换成程序,上机调试运行。
③ 为什么要C和汇编混合编程
依我的看法,上面两位说的都不对:
一楼:汇编语言是低级语言直接往硬件的寄存器里写入东西:
其实C语言和汇编语言都一样,都会编译成二进制文件机器语言烧录到单片机中,所以没有一楼所说的区别
二楼:在C中也不会有数据损失的,如果你定义好数据类型的话。
单片机中是将C编译成汇编,然后根据汇编编译成机器语言---可执行文件;
其实单片机中经常在C中嵌入汇编,主要是因为时间的关系,因为一条汇编语言执行的时间都是可以知道的,而C指令执行的时间是不可知的,因为C编译器不一样,编译后的汇编也是不一样的,如果用汇编就不会有这种情况。所以在一些精确延时的场合,要嵌入汇编
另外,C的可移植性较强,不同的单片机里,功能要求相同的可以直接拿去用
总之,汇编是程序员可以自己翻译成机器语言的,所以单片机的运行是可以完全掌握的
④ 单片机是否经常要使用到C语言与汇编语言的混合编程
一般是不需要的。因为随着现在单片机时钟频率越来越高,那么细微的差别基本可不要考虑了。况且,现在的单片机的编译软件,会自动对程序代码优化。如果你对汇编不是特别在行的话,可能用汇编的效果,还不如用C语言编写后软件自动优化来得好!呵呵~
⑤ 51单片机编程时汇编和C语言如何结合
c语言和汇编语言之间主要存在:相互调用、混合编程等关系,举例来说吧:
1、C语言调用汇编子程序
此时,汇编子程序需要申明为外部程序
#include<reg51.h>
extern void delay(void)
sbit pluse=P1^0;
main()
{
while(1)
{
pluse=0;
delay();
pluse=1;
delay();
}
}
汇编子程序:
汇编部分需要做如此处理。
PUBLIC DELAY
DELAY SEGMENT CODE
RSEG DELAY
DELAY:
MOV R2,#250
DJNZ R2,$
RET
END
2:C语言中嵌入汇编,这个比较简单用宏指令包含进来就可以实现。
void delay(void)
{
#pragma asm
mov r2,#250
djnz r2,$
#pragma endasm
}
⑥ 刚学汇编,我发现C语言和汇编比较相近,他们之间有什么关系吗
C极为强大,有的人觉得可以归为高级语言。汇编相对来说是机器语言上面一层的,比C低一点。但是C语言的运行效率远不如汇编语言编写的程序运行效率高。嵌入式开发里有时C与汇编混合编程。可以两个一起学,加深理解
⑦ 单片机 一般什么情况下会用到 汇编语言和C语言的混合编程
一般很少用到的吧,汇编编程的时间代价太高,除非是特殊段的代码需要特别优化,采用汇编编程可能起到好的效果。
但是一般人的水平估计用汇编也不会,别说用汇编优化了。
现在C的执行效率已经非常高了,不建议花太多时间搞汇编。。。
当然你是大神的话,前面的就全部忽略吧。
⑧ c语言和汇编语言的混合编程方法主要有哪些
C语言在实际应用中,为了完成某种特定的功能,或需要缩短程序的运行时间,或需要对硬件进行专直接操作属,或需要利用操作系统的某些功能模块,这时就会使用到汇编语言程序,即要采用C语言与汇编语言的混合编程技术实现。
C与汇编语言的混合编程方法,为C语言应用开发人员提供方便。汇编语言开发的程序代码短、执行速度快,而C语言是应用广泛的面向过程的开发语言。通过给出混合编程的方法、约定规则以及实现的具体步骤,说明了混合编程需要注意的问题,最后给出了相应的实例。
(8)为什么要汇编和c语言混合编程扩展阅读:
汇编语言具有更高的机器相关性,更加便于记忆和书写,但又同时保留了机器语言高速度和高效率的特点。汇编语言仍是面向机器的语言,很难从其代码上理解程序设计意图,设计出来的程序不易被移植,故不像其他大多数的高级计算机语言一样被广泛应用。所以在高级语言高度发展的今天,它通常被用在底层,通常是程序优化或硬件操作的场合。