汇编语言与C C++ C# VB等语言有什么区别?主要面向作用什么?

如题所述

汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。中国著名计算机科学教育家王爽写过一本名叫《汇编语言》的书。 汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。
  大多数情况下Linux程序员不需要使用汇编语言,因为即便是硬件驱动这样的底层程序在Linux操作系统中也可以用完全用C语言来实现,再加上GCC这一优秀的编译器目前已经能够对最终生成的代码进行很好的优化,的确有足够的理由让我们可以暂时将汇编语言抛在一边了。但实际情况是Linux程序员有时还是需要使用汇编,或者不得不使用汇编,理由很简单:精简、高效和libc无关性。假设要移植Linux到某一特定的嵌入式硬件环境下,首先必然面临如何减少系统大小、提高执行效率等问题,此时或许只有汇编语言能帮上忙了。
优点与缺点
优点
  汇编语言直接同计算机的底层软件甚至硬件进行交互,它具有如下一些优点:
  (1)能够直接访问与硬件相关的存储器或I/O端口;
  (2)能够不受编译器的限制,对生成的二进制代码进行完全的控制;
  (3)能够对关键代码进行更准确的控制,避免因线程共同访问或者硬件设备共享引起的死锁;
  (4)能够根据特定的应用对代码做最佳的优化,提高运行速度;
  (5)能够最大限度地发挥硬件的功能。
缺点
  同时还应该认识到,汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,因此不可避免地存在一些缺点:
  (1)编写的代码非常难懂,不好维护;
  (2)很容易产生bug,难于调试;
  (3)只能针对特定的体系结构和处理器进行优化;
  (4)开发效率很低,时间长且单调。
特点
  汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。
  汇编语言的特点:
  1.面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。
  2.保持了机器语言的优点,具有直接和简捷的特点。
  3.可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。
  4.目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。
  5.经常与高级语言配合使用,应用十分广泛。
  对于不同型号的计算机,有着不同的结构的汇编语言
  汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。
  汇编语言是面向具体机型的,它离不开具体计算机的指令系统,因此,对于不同型号的计算机,有着不同的结构的汇编语言,而且,对于同一问题所编制的汇编语言程序在不同种类的计算机间是互不相通的。
  汇编语言中由于使用了助记符号,用汇编语言编制的程序输入计算机,计算机不能象用机器语言编写的程序一样直接识别和执行,必须通过预先放入计算机的"汇编程序"中进行加工和翻译,才能变成能够被计算机直接识别和处理的二进制代码程序。用汇编语言等非机器语言书写好的符号程序称为源程序,运行时汇编程序要将源程序翻译成目标程序。目标程序是机器语言程序,当它被安置在内存的预定位置上,就能被计算机的CPU处理和执行。
  汇编语言像机器指令一样,是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。
应用
  汇编语言作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿Linux内核来讲,虽然绝大部分代码是用
C语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在Linux的启动部分。由于这部分代码与硬件的关系非常密切,即使是C语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。
  1.70%以上的系统软件是用汇编语言编写的。
  2.某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。
  3.某些高级绘图程序、视频游戏程序是用汇编语言编写的。
  汇编语言是理解整个计算机系统的最佳起点和最有效途径,人们经常认为汇编语言的应用范围很小,而忽视它的重要性。其实汇编语言对每一个希望学习计算机科学与技术的人来说都是非常重要的,是不能不学习的语言。所有可编程计算机都向人们提供机器指令,通过机器指令人们能够使用机器的逻辑功能。所有程序,不论用何种语言编制,都必须转成机器指令,运用机器的逻辑功能,其功能才能得以实现。机器的逻辑功能,软件系统功能构筑其上,硬件系统功能运行于下。汇编语言直接描述机器指令,比机器指令容易记忆和理解。通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础。学习汇编语言,向上可以理解软件,向下能够感知硬件,是我们理解整个计算机系统的最佳起点。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-21
汇编针对底层硬件,因为汇编指令可以直接翻译成机械指令
C/c++都可以操控底层,c是汇编的升华,作底层开发的时候用
c++ c# vb都属于高级语言,就是说可以脱离底层,一般语言开发(写应用程序)都使用高级语言
c++主要写游戏等要求苛刻的软件,但是由于写起来麻烦,大型软件应用一般都用java,运行速度较慢
vb封装性也高,但是一般不用于大软件开发,小软件可以实现较快开发速度
c#和.net等一起用,作为网络应用(和VB联系)和大型软件开发

...C++ C# VB等语言有什么区别?主要面向作用什么?
汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。大多数情况下Linux程序员不需要使用汇编语言,因为即便是硬件驱动这样的底层程序在Linux操作系统中也可以用完全用C语言来实现,再加上GCC这一优秀的编译器目前已经能够对最终生成的代码进行很好的优化,的确有足够的理由让我们可以暂时将汇编语言抛在...

...C++ C# VB等语言有什么区别?主要面向作用什么?
相比之下,c,c++,c#,vb等都是高级语言,因为程序代码更像自然语言,但他们的效率比汇编要差,因为他们需要编译,也就是需要有个翻译过程,这样计算机才能懂。c和c++应该一起说,可以说后者继承了前者的特性加入了面向对象的概念,他们俩应该是最为常见和功能最为强大的高级语言。然后是c#,他可以说...

C#、C++、C语言、vb、vc这些都是编程语言,有什么主要的区别和相同...
vb全称是Visual Basic vc全称是Visual C++,C++便是其中的核心语言 C++是在c语言的基础上演化而来,其加入了面向对象的特性。c\/c++的编译器直接将程序编译成二进制代码,这一点与C#有本质性的不同。C\/C++\/C#可以说都是一个系列的语言,他们的语法长得都很像。C#的诞生并不能取代C\/C++,C++的日子...

C和C++和C#有什么区别?
C语言、C++和C#是三种不同的编程语言。它们之间的主要区别在于语言特性、面向对象程度和应用领域。C语言是高级语言,与汇编语言不同。它不是面向对象的,但提供了指针等特性,使得编程更加灵活,适用于底层接口开发。C++和C#都是面向对象的语言。它们在语法上很接近,但内部细节存在差异。C++保留了C语言的...

C++ 、 汇编语言、VC++ 、C语言之间的区别
1.区别 由语言的抽象程度从低到高为:机器语言 -> 汇编语言 -> C语言 -> C++ 抽象程度越低,越接近底层硬件,抽象程度越高,越面向应用、界面显示 VC++是微软开发的C++语言开发环境,不属于语言范畴,类似的开发环境还有Borland C++ 2.关于从何入手 可以先学C,再学C++; 也可以直接学C++。(如果...

汇编语言、VB、VC、C++、VF等几种语言的区别?
,是用C++编写的(VB想要实现什么功能,必须先用C++做控件),所以有句话说的好“真正的VB高手其实是C++高手”,不学VB还有一个原因,就是他破坏你学习其他软件的思路,他的语法与其他流行软件的语法不一样,学完以后会有少许误入歧途的感觉。说说C语言:我学过C语言,它只能编写DOS程序,功能不是很...

C语言与C++,C#有什么区别
一、两者的区别1、特点方面的不同:C语言既具有高级语言的特点,又具有汇编语言的特点。C++它是一种使用非常广泛的计算机编程语言。C#是微软公司发布的一种面向对象的、运行于.NETFramework之上的高级程序设计语言。2、主要开发用途不同:C面向过程,开发非托管程序,编译成exe是二进制可执行文件,不可跨...

汇编语言和C语言有什么区别?
简单的说就是汇编语言看起来比较难懂,更接近于机器语言,C语言属于高级程序设计语言,有点人类所认知的语法,更容易接受。再则汇编语言因为没有固定的框架,不像C,封装起来,所以C感觉比较好学,同时汇编编起来没有程序化的感觉。

C、C++、C#的区别之处?
C语言是一种面向过程的编程语言,它更接近于机器模型,具有一定的汇编语言特点,但也具备高级语言的特性。因此,C语言通常被用于编写程序的底层部分,如操作系统和驱动程序等。而C++则是一种兼具面向过程和面向对象特性的语言,它不仅支持过程化编程,还引入了类和对象的概念,使得程序可以更好地进行模块化...

c语言与汇编语言、c++语言等有什么不同呢?
C语言是一种计算机程序设计语言,同样的C++,Java,汇编等都是程序设计语言,但是各有各的有点,c语言有一下特点:1.C是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。2.C是结构式语言。

相关了解……

你可能感兴趣的内容

大家正在搜

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