‘壹’ 高级语言和汇编语言有什么区别,哪一个的执行效率更高。
1、可读性:
高级语言可读性、可维护性较佳,汇编语言的可读性较差。
2、程序的执行效率:
汇编语言程序的占用空间小,执行速度快,执行效率高,高级语言占用的空间大,执行效率较低。
3、可维护性:
汇编语言可维护性低很多,代码复杂,针对性撰写程序,可以得到速度快、稳定性高的结果。高级语言的可维护性较高。但是速度较慢,稳定性不高。
执行效率:汇编语言编写的源程序比高级语言编写的源程序执行效率高。
(1)汇编语言编译时间扩展阅读:
汇编语言优缺点:
优点
汇编语言作为机器语言之上的第二代编程语言,它也有很多优点:
可以轻松地读取存储器状态以及硬件I/O接口情况
编写的代码因为少了很多编译的环节,可以能够准确的被执行
作为一种低级语言,可扩展性很高
缺点
因为代码非常单调,特殊指令字符很少,所以造成了代码的冗长以及编写的困难
因为汇编仍然需要自己去调用存储器存储数据,很容易出现BUG,而且调试起来也不容易
就算完成了一个程序,后期维护时候也需要耗费大量的时间。
因为机器的特殊性造成了代码兼容性差的缺陷。
高级语言特点
高级编程语言作为一种通用的编程语言,它的语言结构和计算机本身的硬件以及指令系统无关,它的可阅读性更强,能够方便的表达程序的功能,更好的描述使用的算法。
容易被初学者所掌握,很容易学习。而且容易学习掌握。
高级编程语言因为是一种编译语言,所以他的运行速度比汇编程序要低,同时因为高级语言比较冗长,所以代码的执行速度也要慢一些。
参考资料来源:网络-汇编语言
参考资料来源:网络-高级语言
‘贰’ 在早期没有操作系统的前提下 汇编语言的编译如何完成 我是说汇编语言刚刚诞生四时
人工查表,找出机器码,再用开关输入。
http://hi..com/do_sermon/item/ff7659828b91a7caee083d74
‘叁’ 汇编语言的发展历程
说到汇编语言的产生,首先要讲一下机器语言。机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。
上面所说的计算机指的是可以执行机器指令,进行运算的机器。这是早期计算机的概念。在我们常用的PC机中,有一个芯片来完成上面所说的计算机的功能。这个芯片就是我们常说的CPU(Central Processing Unit,中央处理单元)。每一种微处理器,由于硬件设计和内部结构的不同,就需要用不同的电平脉冲来控制,使它工作。所以每一种微处理器都有自己的机器指令集,也就是机器语言。
早期的程序设计均使用机器语言。程序员们将用0, 1数字编成的程序代码打在纸带或卡片上,1打孔,0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。这样的机器语言由纯粹的0和1构成,十分复杂,不方便阅读和修改,也容易产生错误。程序员们很快就发现了使用机器语言带来的麻烦,它们难于辨别和记忆,给整个产业的发展带来了障碍,于是汇编语言产生了。
汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。 操作:寄存器BX的内容送到AX中1000100111011000机器指令movax,bx汇编指令此后,程序员们就用汇编指令编写源程序。可是,计算机能读懂的只有机器指令,那么如何让计算机执行程序员用汇编指令编写的程序呢?这时,就需要有一个能够将汇编指令转换成机器指令的翻译程序,这样的程序我们称其为编译器。程序员用汇编语言写出源程序,再用汇编编译器将其编译为机器码,由计算机最终执行。
‘肆’ C语言:#define N 5 不占用运行时间,那么占用编译时间吗
是滴。宏定义不占运行时间,但占用编译时间。
宏是简单的文本替换,函数调用有开销的。 编译链接后才能运行!
‘伍’ 为什么汇编语言编出来的程序要比高级语言编出来的执行效率高
这个没有一定的说法,取决于编译器的聪明程度。
一般的语言,如C语言是首先将C语言编译为汇编,然后汇编转为机器码。而用汇编的写则是直接由汇编到机器码。那么这两者的速度差异取决于编译器在编译的时候产生的汇编码是否比程序员手写的更为高效和快速了。
早期的时候编译器很差,产生的汇编码没有程序员手工写的高效,而现在编译器大大的聪明了,所以这两者的速度是很难讲的。
不过大部分情况下,编译器翻译的都要差,所以速度没有手工写的汇编码快。加上JAVA、c#语言等先要转成一个中间语言,再翻译成汇编码,这个就更差了。
‘陆’ 汇编语言发展史及过程
计算机编程语言的发展,经历了从机器语言,汇编语言,高级语言课程。
机器语言
电子计算机。使用由“0”和“1”的二进制数,二进制的计算机语言。开始发明的计算机,只能放下你的谷租嗯计算机语言命令计算机做这做那,一句话,是写一个字符串为“0”和“1”组成的序列,指令由计算机来执行这种语言是机器语言。机器语言是很痛苦的,尤其是在程序中需要的错误,特别是。在计算机程序中的每一台计算机指挥系统经常变化,以运行在另一台计算机上,必须有另一种编程,从而导致工作重复。然而,由于使用的语言为特定的计算机模型,因此计算效率是最高的,所有的语言。机器语言,这是一个第一代的计算机语言。
汇编语言
为了减轻使用机器语言编程的痛苦,这是一个有用的改进二进制字符串:简洁的字母,符号的字符串,而不是一个特定的指令,如“ADD”代表加法器的“mov”表示数据传输,等等,因此,它很容易阅读和理解方案做,误差校正和维护变得容易,这种编程语言被称为汇编语言中,第二代的计算机语言。但是,计算机是不知道这些符号的,这就需要一个专门的程序,专门负责这些符号被翻译成机器语言的二进制数,这个翻译程序称为汇编。
汇编语言是同样依赖于机器的硬件,便携性不是很好,但效率还是非常高的,特定于计算机的硬件和汇编语言编程,准确地发挥计算机硬件的功能和专业知识准备完善的程序和高品质,它仍然是一种流行和??强大的软件开发工具。
3。高级语言
从最初的交流与电脑的惨痛经历,人们认识到,你应该设计一种语言,这种语言接近于数学语言或自然语言,而不依赖于计算机硬件,通用的编译程序对所有机。于1954年,经过艰苦的努力,第一个完全脱离机器硬件的高级语言-FO RT RAN问世40多年来,数百个高层次的语言,几十个重要的影响比大,比较常见的使用FO RT RAN,ALGOL,COBOL,BASIC,LISP,SNOBOL,PL / 1,P ascal,C,PROLOG,A DA,C + +,VC,VB,D elphi,J AVA等。
高级语言的发展也经历了从早期的语言结构化编程语言,面向过程的编程语言的过程中,非程序。因此,软件的发展,由最初的个体手工作坊式发展的工业化,工业生产流水线封闭式生产。
6晚了,越来越多,规模越来越大的软件,软件的生产基本上是从战争中,缺乏科学规范的系统规划与测试,评估标准,其后果是大量的花巨资建立的软件系统,不能使用,因为它包含的错误,甚至是一个巨大的损失,给人的印象是,软件是越来越不可靠,所以很少或没有的软件错误。极大地震撼了计算机行业,被称为“软件危机”。意识:大型程序的准备,而不是写一个小程序,它应该是一个新的技术应该是一样的污水处理厂处理软件开发的全过程。方案设计应易于保证正确性,也便于验证正确性。 1969年,提出了结构化程序设计方法,在1970年,第一个结构化的编程语言-P ascal语言,标志着结构化程序设计开始的时期。
8月初开始,在软件设计的思想,产生了革命,其结果是一个面向对象的编程。几乎所有的面向过程的高级语言的程序在执行前,是一个的管道像一个模块执行完成前,人们不能做任何事情,不能动态地改变方向的实施方案。这是不符合的一天到一天的事情,人们希望发生的一件事,一件事,那就是,而不是面向过程的,而应该是面向应用程序的功能,是对象(object)。方法集成软件,作为硬件的一些通用的IC,生产,密切的功能模块的包称为软件歧管,它具有与特定的应用程序无关,但可以结合对方,以执行特定应用程序的功能,而反复使用。用户只关心接口(输入和输出),并能实现,如何实现,这是一个内部问题,用户完全不关心,
C + +,VB,D elphi是一个典型的代表。
下一个高层次的语言发展目标的应用程序,换句话说,只需要告诉你想要做的程序,该程序可以自动生成算法,自动处理,这是程序的编程语言。 (VC + +是一个高层次的面向对象的语言,VISUAL C + +是不是一种语言,只是开发工具,C和C + +是他的语言)
‘柒’ 汇编语言相对于高级语言有何优势
由于汇编离硬件最近,可以更好地利用专用代码的优势,可以利用计算机特性(逻辑特性、总线结构、存储器组织、高速缓存等)进行计算和数据处理、交换、移动等工作。
高级语言由于要照顾通用编程性能,往往没有针对某cpu硬件结构等方面的特殊处理,处理计算也是标准化的,必然有内存使用、逻辑计算、数据处理方面的不优化之处。
因此汇编语言编译出的程序效率高、代码量小、执行速度快;但在可移植性、灵活性、适配性方面比较高级语言的程序表现差。汇编语言一般用于编制高级语言软件系统中执行频繁、效率核心、时间复杂度高的优化子程序编制。比如你可以在日常生活中发现某些软件(比如视频、语音播放和录制)的专门针对某些处理器的优化插件。
‘捌’ 为什么汇编语言编出来的程序要比高级语言编出来的执行效率高
因为汇编语言是面向机器的语言,和机器码是一一对应的,众所周知,计算机执行的是二进制的机器码,所以汇编速度快,其他语言都是相对高级的语言,面向过程或面向对象,编译后会生成较多的机器码
‘玖’ 汇编语言编译器的MASM编译器介绍
MASM是Microsoft公司推出的汇编编译器。它的版本从低到高经过了很多次的升级(微软的通病,升级补丁多如牛毛)。每次升级除了例行的错误修正外都增加了一些新的功能,以至于到最后高版本和低版本的语法和功能相差很多,向下兼容性也不好。低版本的MASM固然无法编译高版本的源程序,但高版本的MASM也可能无法正常编译低版本的源程序,如MASM 4.0写的源程序常常无法在MASM 6.x上编译成功。在使用MASM系列编译器时,如果不先搞清楚特定的语法和编译选项可以在哪个版本上用,编译中就会错误连篇。所以在这里有必要了解一下MASM各版本的演变过程
下表列出了不同版本MASM编译器的区别。
版 本
简 介
MASM 4.00
这是最先广泛使用的一个MASM版本,适用于DOS下的汇编编程。它很精巧,但使用起来不是很智能化,需要用户自己一板一眼地写出所有的东西。很多教科书上讲的8086汇编语法都是针对这个版本的,对程序员来说。它只比用Debug方便一点点。
MASM 5.00
MASM 5.00比4.00在速度上快了很多,并将段定义的伪指令简化为类似 .code与.data之类的定义方式,同时增加了对80386处理器指令的支持,对4.00版本的兼容性很好
MASM 5.10
对程序员来说,这个版本最大的进步是增加了对@@标号的支持。这样,程序员可以不再为标号的起名花掉很多时间。另外,MASM 5.10增加了对OS/2 1.x的支持
MASM 5.10B
1989年推出,比上一个版本更稳定、更快,它是传统的DOS汇编编译器中最完善的版本
MASM 6.00
1992年发布,有了很多的改进。编译器可以使用扩展内存,这样可以编译更大的文件,可执行文件名相应从Masm.exe改为Ml.exe。从这个版本开始可以在命令行上用*.asm同时编译多个源文件,源程序中数据结构的使用和命令行参数的语法也更像C的风格。最大的改进之一是开始支持 .if/.endif这样的高级语法,这样,使用复杂的条件分支时和用高级语言书写一样简单,可以做到几千行的代码中不定义一个标号;另外增加了invoke伪指令来简化带参数的子程序调用。这两个改进使汇编代码的风格越来越像C,可读性和可维护性提高了很多
MASM6.00A
未发售的版本
MASM 6.00B
最后一个支持OS/2的MASM版本,修正了上一版本中的一些错误
MASM 6.10
修正了一些错误,同时增加了/Sc选项,可以在产生的list文件中列出每条指令使用的时钟周期数
MASM6.10A
1992年发布,修正了一些内存管理方面的问题
MASM 6.11
1993年11月发布,支持Windows NT,可以编写Win32程序,同时支持Pentium指令,但不支持MMX指令集
MASM6.11C
1994年发布,增加了对Windows 95 VxD的支持
MASM 6.12
1997年8月发布,增加 .686,.686P,.MMX声明和对相应指令的支持
MASM 6.13
1997年12月发布,增加了 .K3D声明,开始支持AMD处理器的3D指令
MASM 6.14
这是一个很完善的版本,它在 .XMM中增加了对Pentium III的SIMD指令集的支持,相应增加了OWORD(16字节)的变量类型
MASM 6.15