首页 > 运维 > 经验 > 汇编程序翻译成机器怎么样,汇编语言和高级语言的区别是什么

汇编程序翻译成机器怎么样,汇编语言和高级语言的区别是什么

来源:整理 时间:2024-06-11 04:38:02 编辑:黑码技术 手机版

本文目录一览

1,汇编语言和高级语言的区别是什么

汇编语言是面向机器的程序设计语言。在汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。高级语音:由于汇编语言依赖于硬件体系,且助记符量大难记,于是人们又发明了更加易用的所谓高级语言。在这种语言下,其语法和结构更类似普通英文,且由于远离对硬件的直接操作,使得一般人经过学习之后都可以编程。高级语言通常按其基本类型、代系、实现方式、应用范围等分类。

汇编语言和高级语言的区别是什么

2,汇编器和编译器有什么区别

汇编器(Assembler)是将汇编语言翻译为机器语言的程序。一般而言,汇编生成的是目标代码,需要经链接器(Linker)生成可执行代码才可以执行。 汇编语言是一种以处理器指令系统为基础的低级语言,采用助记符表达指令操作码,采用标识符表示指令操作数。作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。常用的高级语言编译器有Microsoft公司的MASM系列和Borland公司的TASM系列编译器,还有一些小公司推出的或者免费的汇编软件包等。 编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器(Linker) → 可执行程序 (executables)高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。对于C#、VB等高级语言而言,此时编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。最后运行的时候通过通用语言运行库的转换,编程最终可以被CPU直接计算的机器码(NativeCode)
汇编器(比如MASM)全称是汇编编译器,用来编译汇编语言的。汇编语言的大部分命令都和机器码一一对应,而高级语言和汇编的伪指令是不和机器码一一对应的 ,因此从某种意义上说,汇编码就相当于机器码。 编译器的作用是,将源文件(.c/.cpp/.pas等)转换为目标代码(.obj/.dcu等)。这是已经是二进制代码了。 最后由连接器(Linker),将目标代码连接起来,这样就形成了可执行文件
汇编器是编译器的一种编译器就是把各种编程语言编写的程序源代码翻译成cpu指令的一组程序.汇编器就是汇编语言的编译器
可以理解为,编译器先把源文件转换成汇编文件,再调用汇编器和连接器生成可执行文件
汇编和编译是两个完全不同的概念.汇编是指用汇编语言直接操纵机器,用汇编语言编的程序是不需要编译器进行编译的编译是指把高级语言编的程序翻译成机器语言好让机器执行,不同的高级语言有不同的编译器楼主可以看看>和>这两本书就明白了

汇编器和编译器有什么区别

3,高级语言和汇编语言最后都转化为机器指令那么为什么说汇编代码运

楼上的那段汇编如果去掉栈段将会更短些^^我也说两句吧,概括型~~ 高级语言必须在操作系统环境下编译运行,通常会调用操作系统提供的库,比如WINDOWS环境下通常会调用GDI,而汇编代码是机器指令的助记符,机器指令可不需要操作系统环境直接基于硬件运行,,想想硬盘的0磁头0柱面1扇区的主引导记录吧~~ 还有一点就是人是非常智能的,用汇编编程时会根据数据大小分配合适的存储单位,合理利用内存空间,而用高级语言编程,以VISUAL BASIC为例,不必考虑数据是一个字节或是一个字或是一个双字,编译器编译有时统一以双字为单位分配,就大大的浪费了内存空间,而且用汇编编程常求精简,而高级语言编译器由于没有人类智能,对于同样一个目标可能会绕些弯子~这样一来,同样功能的程序用高级语言编译生成的要比直接用汇编生成的要长多啦,有时甚至几倍!所以说汇编代码效率要高。 但是现在之所以高级语言非常通用,是因为大型的程序如果用汇编去实现是非常庞大的工程,而调用已总结的库文件则轻松的多,C语言编译器就提供了相当大的库函数方便编程者调用,就好像别人已经为你烧制好砖头,你只要盖房子就好。
为什么说汇编代码运行效率高? 为什么说汇编代码运行效率高? 为什么说汇编代码运行效率高? 你问重复了?!!汇编语言执行效率高是指什么?http://wenwen.sogou.com/z/q708051410.htm
是这样的,高级语言其实就是一个个汇编语言的模块拼凑在一起当然这些模块的运行效率是经过的极大的优化的,不同的模块之间是相对独立互补干扰的但这里还是有一个问题就是这些代码放在实际应用中会还是存在一些浪费现象重复,多余,等等比如int,如果我现在一个程序的一个数,绝对只在0~9之间,那int是不是就浪费了一些字节还有些其他的差别,等你深入学习你知道了,说多倒反影响理解
器语言啊,所有语言运行都以机器语言运行的吧。高级语言,就像用英语说,如果某条件成立就执行某命令。 机器语言就是0101。汇编语言就是push call 之类的。 一般来说高级语言接近逻辑判断的写法,比较有条理。 通过编译器转成汇编代码,再转成机器码。windows下一般就是exe 这样的东东了,实际上就是一连串的0101,而在这串01以一定的规格开头用来描述这个exe 的长度,入口。。。就是exe 文件了 。机器,汇编,高级 的速度不需要太在意,liunx 还是用c语言写的
前面朋友说得都不错,我再说说更深层的原因。 高级语言之所以“高级”,是说它“抽象和归类”了许多相近的操作和数据结构,以便更符合人的思维习惯,而且同时不可避免地,忽略了一些可以发挥“技巧”的特性(因为它要考虑通用性)。 而在汇编中,我们可以尽情利用所有的“技巧”和“针对某种结构的”最优算法(因为没有任何限制和“封装”),所以汇编效率无论在空间上还是时间上都可以做到比“高级语言”更优。 换个角度理解,汇编是更接近机器的语言,由“编程者”将“问题”转化成机器的操作去实现,而高级语言更接近于数学(或者说人),必须“翻译”成计算机能够执行的“指令”,“人”对问题的描述简化了(数学化),但是翻译时(例如编译)不可能是高效率的 —— 为什么?因为“抽象”和“通用”的要求与效率是矛盾的!说到底是因为:翻译程序不如人聪明!呵呵

高级语言和汇编语言最后都转化为机器指令那么为什么说汇编代码运

4,汇编语言好吗有什么用

汇编语言就是0和1写成的,是最低的计算机语言,很难理解的
好的很。汇编直接操控硬件,由助记符表示由完整功能的微程序,这样就不用写一大篇 11001001 去指挥计算机硬件,不就工作量少,犯错误相对少,好读吗?
汇编语言一般用在单片机上的 是低级语言! 学习起来比较容易的
汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。 用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理的系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。 汇编语言比机器语言易于读写、易于调试和修改,同时也具有机器语言执行速度快,占内存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植。 是能完成一定任务的机器指令的集合。 常说汇编语言过时,是低级语言,并不是说汇编语言要被弃之,相反,汇编语言仍然是程序员必须了解的语言,在某些行业与领域,汇编是必不可少的,非它不可适用。只是,现在计算机最大的领域为IT软件,也是我们常说的 Windows 编程,在熟练的程序员手里,使用汇编语言编写的程序,运行效率与性能比其它语言写的程序是成倍的优秀,但是代价是需要更长的时间来优化,如果对计算机原理及编程基础的扎实,实在是得不尝失,对比现在的软件开发,已经是市场化的软件行业,加上高级语言的优秀与跨平台,一个公司不可以让一个团队使用汇编语言来编写所有的东西,花上几倍甚至几十倍的时间,不如使用其它语言来完成,只要最终结果不比汇编语言编写的差太多,就能抢先一步完成,这是市场经济下的必然结果。 但是,至今为止,还没有程序员敢断定汇编语言是不需要学的,一个不懂汇编语言的程序员,只是三流的程序,这是大部分人的共识,同时,技术精湛的汇编程序员,已经脱离软件开发,挤身于工业电子编程中,一个电子工程师,主要开发语言就中汇编,c语言使用只占极少部分,而电子开发工程师是千金难求,在一些工业公司,一个核心的电子工程师比其它任何职员待遇都高,对比起来,一般电子工程师待遇是程序员的十倍以上。这种情况是因为现在学习汇编的人虽然也不少,但是真正能学到精通的却不多,它难学,难用,适用范围小,虽然简单,但是过于灵活,学习过高级语言的人去学习汇编比一开始学汇编的人难得多,但是学过汇编的人学习高级语言却很容易,简从繁易,繁从简难。 总之,汇编语言是程序员的必修语言。 目前国内最好的汇编网站是: http://www.aogosoft.com 其站点aogo,就是一个在工业方面有所成就的工程师,有意者可多参考。 其次就是罗云彬的汇编站点: http://asm.yeah.net 这个大概是国内建站时间最长的汇编站点,其编写的《Windows下汇编语言程序设计》一书。是站长十几年的经验的集合,不妨看看。 熟悉指令,可以尝试破解,加强兴趣,参考看雪学院: http://www.pediy.com,国内最好的破解组织,其中看雪与众高手打造的破解书《加密 解密完全方案》非常有名。
汇编语言是离底层更加接近的语言,直接对硬件进行操作,速度快,但是代码难以理解,可读性差,不符合人的思维方式。建议学习高级语言,比如C,C++等。

5,谈谈对汇编语言的认识

汇编语言(assembly language)是面向机器的程序设计语言.汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言”作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如masm, tasm等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。 在汇编语言中,用助记符(memoni)代替操作码,用地址符号(symbol)或标号(label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。因此汇编语言亦称为符号语言。 使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编语言编译器把汇编程序翻译成机器语言的过程称为汇编。 汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。 汇编语言的特点: 1.面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。 2.保持了机器语言的优点,具有直接和简捷的特点。 3.可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、cpu、i/o端口等。 4.目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 5.经常与高级语言配合使用,应用十分广泛。 汇编语言的应用: 1.70%以上的系统软件是用汇编语言编写的。 2.某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。 3.某些高级绘图程序、视频游戏程序是用汇编语言编写的。 汇编语言是我们理解整个计算机系统的最佳起点和最有效途径 人们经常认为汇编语言的应用范围很小,而忽视它的重要性。其实汇编语言对每一个希望学习计算机科学与技术的人来说都是非常重要的,是不能不学习的语言。 所有可编程计算机都向人们提供机器指令,通过机器指令人们能够使用机器的逻辑功能。 所有程序,不论用何种语言编制,都必须转成机器指令,运用机器的逻辑功能,其功能才能得以实现。 机器的逻辑功能,软件系统功能构筑其上,硬件系统功能运行于下。 汇编语言直接描述机器指令,比机器指令容易记忆和理解。通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础。 学习汇编语言,向上可以理解软件,向下能够感知硬件,是我们理解整个计算机系统的最佳起点和最有效途径。
通过两节课的学习,我了解到汇编语言是直接在硬件之上工作的编程语言。首先要了解的是机器语言,机器语言是机器指令的集合,机器指令展开来讲就是一台机器可以正确执行的命令。早期的程序员们很快就发现了使用机器语言带来的麻烦,它比较难于辨别和记忆,给整个产业的发展带来了障碍,于是便产生了汇编语言。 汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。我了解到,用汇编语言编写程序的工作过程是:程序员用汇编语言写出源程序,再用汇编编译器将其编译为机器码,最后由计算机执行。 汇编语言的核心是汇编指令,汇编指令决定了汇编语言的特性。汇编指令是机器指令的助记符,同机器指令一一对应。每一种CPU都有自己的汇编指令集。CPU可以直接使用的信息在存储器中存放。在存储器中指令和数据没有任何区别,都是二进制信息。每个存储单元从0开始顺序编号,一个存储器有128个存储单元,编号从0~127。一个存储单元可以存储8个bit,即8位二进制数。 通过学习我了解到,CPU要想进行数据的读写,必须和外部器件进行下面三类信息的交互:存储单元的地址(地址信息);器件的选择,读或写的命令(控制信息);读或写的数据(数据信息)。每个CPU芯片都有许多管脚,这些管脚与总线相连。也可以说,这些管脚引出总线。一个CPU可以引出3种总线的宽度标志了这个CPU的不同方面的性能:地址总线的宽度决定了CPU的寻址能力;数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量;控制总线的宽度决定了CPU对系统中其他器件的控制能力。在汇编课程中,我们也从功能的角度详细介绍了3类总线。 最终运行程序的是CPU,我们用汇编语言编程的时候,必须要从CPU的角度考虑问题。对CPU来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU寻址能力的限制。这个逻辑存储器就是我们所说的内存地址空间。对于初学者的我来说,这个概念还是比较抽象的,希望通过后续的课程学习,能使一些现在仍然模糊的概念更清晰,更具体化。
文章TAG:汇编汇编程序程序程序翻译汇编程序翻译成机器怎么样

最近更新