为什么计算机能运行用汇编语言和高级语言编写的程序?

作者&投稿:左丘胥 (若有异议请与网页底部的电邮联系)
为什么说用高级语言写的程序,执行效率没有汇编高?这些高级语言不都是要先编译成汇编语言吗?~

高级语言主要是给人看的,即使实现的目的完全相同,不同的程序员写出来的高级语言都很可能会看起来完全不同,因此编译器在把高级语言编译为机器码的过程中,就难免会产生很多的冗余代码,比如在汇编语言中从a点到b点能够一步到达的,在高级语言编译的代码中却有可能满世界乱转把整个字母表都走一遭后才到达b,尽管结果看起来是一样的,但效率就不可同日而语了。
当然了,像js之类的脚本语言也是高级语言啊,它们是解析执行的,效率当然更加没有汇编语言高了。

你的问题是错误的,计算机不能直接运行汇编语言和高级语言,计算机能执行的只有二进制代码。
汇编语言是介于人类和计算机之间的语言,是最接近二进制的语言,需要编译器编译成二进制(一般EXE)文件才能运行,现在一般不直接用它开发软件,它不符合的现代的软件工程。
而高级语言,如C/C++、Pascal、Java等,是能按人的思维模式写代码的语言,符合软件工程,也需要编译器编译后才能执行。

而编译器就是专门用来将汇编语言、高级语言编译成计算机能认得到的二进制代码。不同的语言编译器也不同

机器语言

现在有超过2500种有文档资料的计算机语言,

计算机语言:计算机语言通常是一个能完整、准确和规则地表达人们的意图,并用以指挥或控制计算机工作的“符号系统”。

计算机语言通常分为三类:即机器语言,汇编语言和高级语言。 (了解内容一)

1. 机器语言
机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。
用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作,编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。现在,除了计算机生产厂家的专业人员外,绝大多数程序员已经不再去学习机器语言了。

2.汇编语言
为了克服机器语言难读、难编、难记和易出错的缺点,人们就用与代码指令实际含义相近的英文缩写词、字母和数字等符号来取代指令代码(如用ADD表示运算符号“+”的机器代码),于是就产生了汇编语言。所以说,汇编语言是一种用助记符表示的仍然面向机器的计算机语言。汇编语言亦称符号语言。汇编语言由 于是采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。
汇编语言中由于使用了助记符号,用汇编语言编制的程序送入计算机,计算机不能象用机器语言编写的程序一样直接识别和执行,必须通过预先放入计算机的“汇编程序“的加工和翻译,才能变成能够被计算机识别和处理的二进制代码程序。用汇编语言等非机器语言书写好的符号程序称源程序,运行时汇编程序要将源程序翻译成目标程序。目标程序是机器语言程序,它一经被安置在内存的预定位置上,就能被计算机的CPU处理和执行。
汇编语言像机器指令一样,是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。汇编语言是低级语言。但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。

3.高级语言
不论是机器语言还是汇编语言都是面向硬件的具体操作的,语言对机器的过分依赖,要求使用者必须对硬件结构及其工作原理都十分熟悉,这对非计算机专业人员是难以做到的,对于计算机的推广应用是不利的。计算机事业的发展,促使人们去寻求一些与人类自然语言相接近且能为计算机所接受的语意确定、规则明确、自然直观和通用易学的计算机语言。这种与自然语言相近并为计算机所接受和执行的计算机语言称高级语言。高级语言是面向用户的语言。无论何种机型的计算机,只要配备上相应的高级语言的编译或解释程序,则用该高级语言编写的程序就可以通用。

计算器处理的都是二进制码,在CPU中会有很多个寄存器,用以存储二进制码,和16进制码(汇编)的对应关系,当你打出汇编语言的MOV ax,1003的时候,CPU先回找到存储指令的存储单元,根据对应关系,拿出二进制码来执行。高级语言也是一样的,它会根据你的代码段将你的代码段转成二进制码。

CPU为什么会执行二进制码?

这个需要你了解计算机的逻辑电路了,早期计算机,用电子管矩阵(或者系统)来表示,灭了的标示0,着了的表示1,这个来控制电流,从而完成基本的逻辑以及算术运算。。

楼主,这个是我全部手工敲得,别忘记采纳啊,欢迎有汇编兴趣的朋友加我,731183236

因为有编译器!程序写好之后,会被编译器编译成机器代码的,也就是把所有的东西变成0和1,然后被计算机运行。

因为这些语言都是用计算机编出来的,就是这样。呵呵。

计算机为什么可以运行汇编语言和高级语言
答:汇编已经算是机器语言了,只是用看得懂的单词来代表机器的二进制码。高速高效,直接可以在汇编语言上看到运行多少个指令,多少机器周期来完成。汇编的缺点:机器语言嘛,顾名思义就不是人看的东西。就算是自己写的程序,尤其是比较庞大的程序,基本上过几个月就看不懂的了。程序编写速度慢。而且移植性...

汇编语言为什么能在计算机上运行?
答:计算机只能识别0和1,任何语言编制的程序最终都要变成0和1的组合,才能被计算机所接受并按这些0和1的组合来执行,变成0和1的过程就是与各种语言相对应的编译和连接。汇编语言也好,C语言也罢,都离不开两个过程。只是,汇编语言与硬件更近些,更直接的操作硬件而已,越高级的语言离硬件的距离越远,C...

...现代计算机系统中还有中断处理程序是用汇编语言编写?
答:主要是出于效率方面的考量。中断处理程序需要在尽量短的时间内完成所需的必要处理,尽量减少对线程/程序流造成的影响,因此大部分情况下用汇编直接编写,跳过了通用编译过程中冗余的适配部分。汇编语言是汇编指令集、伪指令集和使用它们规则的统称,使用具有一定含义的符号为助记符。由于汇编语言是完全依赖于...

计算机底层原理——汇编语言
答:理解内存地址的编码方式和寻址能力,是掌握指针和汇编语言的关键。内存的高效使用,对程序性能至关重要。总之,汇编语言是通往计算机底层的桥梁,通过它,我们能深入理解数据的流动、指令的执行和内存的管理。掌握了汇编,其他编程语言的学习也将如虎添翼,带你探索计算机世界的无尽可能。

汇编语言的作用和重要性
答:汇编语言是一种面向机器结构的低级程序设计语言,汇编语言程序是把机器指令组成的机器语言"符号化",它同机器语言的目标代码一一对应.采用汇编语言进行程序设计,既可以充分发挥机器硬件提供的有利条件,又不像机器语言那样编制出的程序难于辨认,不易修改、维护。在某些情况下,用高级语言编制的程序不能满足要求...

汇编语言有什么更大的好处?
答:汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。汇编语言的特点:1.面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。2....

为什么汇编语言程序要经过汇编才能够被计算机执行?
答:汇编语言是由我们比较熟悉的一些助记符组成的,这些符号只有我们“人”知道其意思,计算机是不认识的,计算机只认识“1”和“0”组成的代码。汇编的过程,就是将汇编语言编制的我们人熟悉的程序代码翻译成计算机认识的1和0组成的代码的过程。

汇编语言:计算机系统的灵魂与基础
答:汇编语言,作为直接与硬件对话的语言,具有其独特的魅力与价值。尽管在编写复杂程序时,其代码量相对较大,且依赖于特定的处理器体系结构,无法直接在不同处理器间移植,但这并不影响其在计算机科学中的重要地位。专为特定计算机设计汇编语言是为特定的计算机或系列计算机专门设计的,具有明确的硬件指向性。它能够直接控制...

计算机为什么可以运行汇编语言和高级语言
答:你的问题是错误的,计算机不能直接运行汇编语言和高级语言,计算机能执行的只有二进制代码。汇编语言是介于人类和计算机之间的语言,是最接近二进制的语言,需要编译器编译成二进制(一般EXE)文件才能运行,现在一般不直接用它开发软件,它不符合的现代的软件工程。而高级语言,如C/C++、Pascal、Java等,是能...

汇编语言:计算机硬件与软件的桥梁
答:机器语言是机器指令的集合,而汇编语言则是机器指令的“记忆助手”,为程序员提供了更直观、更易读的书写格式。编写汇编程序使用汇编语言编写程序,需要经历编写源代码、编译为机器码和执行指令三个步骤。这一过程使得程序员可以更加高效地与计算机硬件进行交互。‍核心特性:汇编指令汇编指令是汇编语言的灵魂,...