高分!!为什么用汇编语言编出的程序要比C语言等高级语言编出的程序的体积要小呀?

老师刚讲汇编,说用汇编语言编程的程序要比用其他高级语言编出的程序体积要小很多 这是为什么呀? 最后它们不都是要变111111000011000等一样的代码吗? 功能一样 为什么 大小却不一样呢? 还有,是不是高级语言中没有对硬件操作的语句所以不能对硬件进行操作,而汇编中有这样的语句,所以汇编可以对硬件进行操作? 请高手帮忙!!!!!!!!!!!!!非常感谢!!!!
最后不是都要变成.exe的文件吗?且一样的功能 怎么回事呀?
.........................................................
是不是高级语言中没有对硬件操作的语句所以不能对硬件进行直接的操作,而汇编中有这样的语句,所以汇编可以对硬件进行直接的操作?

计算机语言从低级到高级可以分为:
机器语言,即由0、1组成的机器硬件可以识别的语言;
低级语言,即汇编语言
中级语言,如C语言
高级语言,如C++,JAVA,C#,Delphi等。

汇编语言是将由0、1组成的机器语言用具有简单语义的英文代码表示,以便于理解和程序员编程。汇编语言通常用于对硬件的直接操控。由于汇编语言编写的程序很小,所以通常在程序中最核心的、控制硬件的代码可以采用汇编语言编写,一方面是安全,另一方面提高运行速度。

汇编语言(Assembly Language)是面向机器的程序设计语言。

在汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语音变成了汇编语言。于是汇编语言亦称为符号语言。

使用汇编语言编写的程序,机器个能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编语言把汇编程序翻译成机器语言的过程称为汇编。

汇编语言比机器语言易于读写、易于调试和修改,同时也具有机器语言执行速度快,占内存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植。

■对于不同型号的计算机,有着不同的结构的汇编语言

汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。

汇编语言是面向具体机型的,它离不开具体计算机的指令系统,因此,对于不同型号的计算机,有着不同的结构的汇编语言,而且,对于同一问题所编制的汇编语言程序在不同种类的计算机间是互不相通的。

汇编语言中由于使用了助记符号,用汇编语言编制的程序输入计算机,计算机不能象用机器语言编写的程序一样直接识别和执行,必须通过预先放入计算机的"汇编程序"的加工和翻译,才能变成能够被计算机识别和处理的二进制代码程序。用汇编语言等非机器语言书写好的符号程序称为源程序,运行时汇编程序要将源程序翻译成目标程序。目标程序是机器语言程序,它一经被安置在内存的预定位置上,就能被计算机的CPU处理和执行。

汇编语言像机器指令一样,是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。

至于汇编与编程的区别是显而易见的,汇编语言是一种用于编写某些程序的语言。而编程则是程序员用某种语言编写程序的过程。

高级语言可以做的一切,汇编语言都可以实现,而高级语言不能做的,汇编照样可以,汇编语言的功能不是受限于语言,而是受限于你的思路,没有什么做不出来的。但人们不事事都用汇编的原因就是编程的效率低,汇编语言可以用来编操作系统,但很少使用,都使用c语言,unix,linux,windows等都是用c,原因就是汇编的编程效率低,汇编用在代码量少,执行效率要求高,空间占用少,硬件编程等领域,比如做病毒,硬件驱动,单片机等领域。

高级语言是一种人工设计的语言,它对具体的算法进行描述,所以又称为算法语言。高级语言独立于计算机的硬件(即与具体的硬件无关),是依靠软件来译为机器语言的。这就导致了汇编语言有更好的适应性,不依赖软件的环境。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-09-06
多数时候,高级语言编译后,必然有许多中间代码,优化也只能部分精简。
其次,高级语言编译器给目标代码(EXE程序)赋予了很多常规性的功能,比如,结构化异常处理例程(SEH),---用汇编,除非自己加入,编译器是不会做这些的。本回答被提问者采纳
第2个回答  2007-09-05
汇编语言是最接近硬件的语言,当然可以直接对硬件进行操作了。
c语言即是低级语言的功能又有高级语言的特征。
当然,最终的可执行文件是一定要编译或者汇编成机器语言执行的,但c语言毕竟要比汇编语言高级,程序的代码和所生成的可执行文件一定要比汇编语言多。
至于111111000011000实际就是高电平或者低电平,储存的时候就是不同的方向的磁极,或者凸凹的表面。

相关了解……

你可能感兴趣的内容

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