精华内容
下载资源
问答
  • 机器语言、汇编语言(低级语言)、高级语言

    千次阅读 多人点赞 2019-11-10 00:00:57
    机器语言、汇编语言(低级语言)、高级语言 【原文:https://zhuanlan.zhihu.com/p/37524989】 编程语言的机器级表示:机器语言、汇编语言、高级语言 ​ 首先下面一张图是C语言、汇编语言以及翻译过的机器语言,大家...

    机器语言、汇编语言(低级语言)、高级语言

    【原文:https://zhuanlan.zhihu.com/p/37524989】

    编程语言的机器级表示:机器语言、汇编语言、高级语言

    ​ 首先下面一张图是C语言、汇编语言以及翻译过的机器语言,大家可以先有个大概的眼熟。

    img

    1、机器语言

    计算机是不能直接识别我们所编写的C程序或者Java程序的。它只能识别机器语言,而机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指指令系统令的集合。

    早期计算机就是指可以执行机器指令,进行运算的机器。在我们常用的PC机中,有一个芯片,就是我们常说的CPU(Central Processing Unit,中央处理单元)可以完成前面所说的计算机的功能,但是每一种这样的微处理器(CPU)由于硬件设计和内部结构的不同,就需要用不同的电平脉冲来控制,使它工作。所以每一种微处理器都有自己的机器指令集,也就是机器语言。

    早期的程序设计均使用机器语言。程序员们将用0, 1数字编成的程序代码打在纸带或卡片上,1打孔,0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。

    用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍,而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。

    那么该怎么办呢?这时候汇编语言便产生了。

    需要注意的是现在除了计算机生产厂家的专业人员外,一般是不需要学习机器语言了。

    2、汇编语言

    是一种用于电子计算机、微处理器、微控制器,或其他可编程器件的低级语言。 在不同的设备中,汇编语言对应着不同的机器语言指令集。 一种汇编语言专用于某种计算机系统结构,而不像许多高级语言,可以在不同系统平台之间移植。汇编语言的主体是汇编指令,汇编语言是二进制指令的文本形式,与指令是一一对应的关系。比如,加法指令00000011写成汇编语言就是 ADD。

    比如下面将寄存器 BX 的内容发送到 AX 上:

    操作:寄存器BX的内容送到AX中
      
    1000100111011000  机器指令
      
    mov ax,bx                    汇编指令 
    

    我们能很明显的从上面两条指令看出区别,汇编指令相对于机器指令是很容易记住的。

    可能有人会问,我们用汇编语言编写程序,可是计算机只认识机器指令,那该怎么办?这时候就需要一个能将汇编语言转换成机器指令的工具,我们称其为汇编器(有别于编译器)。程序员用汇编语言写出源代码,再用汇编汇编器将其编译为机器码,最后由计算机执行。

    img

    汇编语言是直接面向处理器(Processor)的程序设计语言。处理器是在指令的控制下工作的,处理器可以识别的每一条指令称为机器指令。每一种处理器都有自己可以识别的一整套指令,称为指令集。处理器执行指令时,根据不同的指令采取不同的动作,完成不同的功能,既可以改变自己内部的工作状态,也能控制其它外围电路的工作状态。

    汇编语言的另一个特点就是它所操作的对象不是具体的数据,而是寄存器或者存储器,也就是说它是直接和寄存器和存储器打交道,这也是为什么汇编语言的执行速度要比其它语言快,但同时这也使编程更加复杂,因为既然数据是存放在寄存器或存储器中,那么必然就存在着寻址方式,也就是用什么方法找到所需要的数据。例如上面的例子,我们就不能像高级语言一样直接使用数据,而是先要从相应的寄存器AX、BX 中把数据取出。这也就增加了编程的复杂性,因为在高级语言中寻址这部分工作是由编译系统来完成的,而在汇编语言中是由程序员自己来完成的,这无异增加了编程的复杂程度和程序的可读性。

    再者,汇编语言指令是机器指令的一种符号表示,而不同类型的CPU 有不同的机器指令系统,也就有不同的汇编语言,所以,汇编语言程序与机器有着密切的关系。所以,除了同系列、不同型号CPU 之间的汇编语言程序有一定程度的可移植性之外,其它不同类型(如:小型机和微机等)CPU 之间的汇编语言程序是无法移植的,也就是说,汇编语言程序的通用性和可移植性要比高级语言程序低。

    总结起来就是三个特点:机器相关性、高速度和高效率、编写和调试复杂(相对于高级语言)。

    3、高级语言

    前面的机器语言和汇编语言我们都有一定了解了,汇编语言也是和机器语言一样,都是直接对硬件进行操作,但是汇编语言指令采用了英文缩写的标识符,更容易识别和记忆。但是说起来更容易识别和记忆,也只是相对于机器语言而言的。在实际编程中,汇编语言源程序也是十分复杂和冗长的,这时候高级语言产生了。

    高级语言并不是指一种语言,而是包括很多编程语言,比如Java、C、C++、C#、python等等,是高度封装的编程语言。高级语言与计算机的硬件结构和指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。但高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。

    ​ 汇编语言和高级语言最后都得转换成机器语言,但是高级语言由于高度封装,相同的实现下,高级语言转换成机器语言的执行步数通常都比汇编语言多,这也是为啥高级语言一般都比汇编语言性能差的原因。

    从最开始我们给出的一张图也可以看出,C语言写出的短短几行代码,翻译成汇编语言会多很多,更不用说变成机器语言了。

    展开全文
  • 汇编语言与高级语言

    千次阅读 2016-10-25 22:42:14
    汇编语言与高级语言

    汇编语言与高级语言的区别

    1. 从可移植性方面考虑
      汇编无可移植性,C语言有一定可移植性,Java等更高级语言移植性更强。
      汇编语言没有可移植性。是由于每一款CPU都有其自己的指令集,即使是有相同的指令集的不同芯片,汇编的语法也可能会有所不同。汇编语言的编写都是针对具体的某一种芯片,汇编语言对硬件的依赖程度很高。所以其可移植性很差。
      相对于汇编语言,C语言有一定可移植性。用C语言编写的代码,可以用于不同的CPU上。每一款CPU都有其自己特定的C语言编译器,用与之对应的C编译器编译出来的可执行程序,便可以正确的运行。
    2. 从执行效率方面考虑
      汇编语言效率最高,C语言次之,Java等更高级语言效率更低。
    3. 从编写难度方面考虑
      汇编难写,C语言和高级语言好写。
      汇编不适合完成大型复杂的项目,更高级语言更适合完成更大、更复杂的项目。

    汇编语言的本质

    汇编的实质是机器指令(机器码)的助记符,是一种低级符号语言。汇编器的工作就是将汇编语言替换成与之对应的机器码。
    机器指令集(汇编指令集)是一款CPU的编程特征,是这款CPU的设计者制定的。CPU的内部电路设计就是为了实现这些指令集的功能。机器指令集就好象是CPU的API接口一样。

    程序员用汇编指令编程 –经汇编器汇编成二进制可执行程序文件–>二进制文件被CPU读取进去–>CPU内部电路对二进制文件解码–>解码通过则CPU执行指令、完成指令动作。
    如果程序员用C语言等高级语言编程,则编译器先将C语言程序编译为汇编程序,再进行上面的后续部分。

    CPU在固定频率的时钟控制下节奏运行。
    CPU可以通过总线读取外部存储设备中的二进制指令集(机器码),然后解码执行。这些可以被CPU解码执行的二进制指令集是CPU设计的时候确定的,是CPU的设计者(ARM公司)定义的,本质上是一串由1和0组成的数字。这就是CPU的汇编指令集。

    参考来源:朱有鹏老师视频教程课件 网友文章

    展开全文
  • 高级语言,汇编语言,机器语言

    千次阅读 2017-06-08 00:26:57
    计算机语言具有高级语言和低级语言之分。而高级语言又主要是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。编写的程序称之为源程序。低级...

    计算机语言具有高级语言和低级语言之分。而高级语言又主要是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。编写的程序称之为源程序。低级语言机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。高级语言、汇编语言和机器语言都是用于编写计算机程序的语言。

    高级语言是高度封装了的编程语言,与低级语言相对。它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序编写员编写更容易,亦有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容。如流行的java,c,c++,C#,pascal,python,lisp,prolog,FoxPro,易语言,中文版的C语言习语言等等,这些语言的语法、命令格式都不相同。

    汇编语言(assembly language)亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。汇编语言是直接面向处理器(Processor)的程序设计语言。所操作的对象不是具体的数据,而是寄存器或者存储器,也就是说它是直接和寄存器和存储器打交道,这也是为什么汇编语言的执行速度要比其它语言快,但同时这也使编程更加复杂。再者,汇编语言指令是机器指令的一种符号表示,而不同类型的CPU 有不同的机器指令系统,也就有不同的汇编语言,所以,汇编语言程序与机器有着密切的关系。所以,除了同系列、不同型号CPU 之间的汇编语言程序有一定程度的可移植性之外,其它不同类型(如:小型机和微机等)CPU 之间的汇编语言程序是无法移植的。


    机器语言(machine language)是一种指令集的体系。这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据。机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。







    展开全文
  • 高级语言程序设计实验指导书。高级语言程序设计 实践教程
  • 更高级的高级语言应该长什么样?

    千次阅读 多人点赞 2021-05-09 12:53:02
    现在的编程语言至少达成共识的,已经经历三代语言,机器语言01010,汇编语言,高级语言从C开始,包括后续的C++ Java。 这三代语言的目的都是让编程越来越简单。在机器语言时代,编程只是少数天才的专.

    我心目的新编程语言,不是rust dart go swift flutter … 不是说这些不好,是这些都差不多,Java也挺好,谁比谁在某方面领先一点,并不会有什么本质改变和区别,所以今天说的新编程语言和这些都无关… 是编程的方式上都发生改变的“语言”。其实,Programming ≠ Coding !

    现在的编程语言至少达成共识的,已经经历三代语言,机器语言01010,汇编语言,高级语言从C开始,包括后续的C++ Java。

    这三代语言的目的都是让编程越来越简单。在机器语言时代,编程只是少数天才的专利,过度到汇编语言后,才有了一些改善,但是编程仍无法对常人敞开大门。直到高级语言的出现,才让更多人踏入了编程的大门。

    而像PHP、Python这种语法简单易学的语言和C、Java等语言没有本质的区别,那有没有第四代语言呢?

    很早,在上世纪8~90年代,很多国家和大学实验室都在研究第四代甚至第五代语言。但是都没有达成共识,新一代编程语言到底是个啥样子?应该具备一些什么特征。

    在这里插入图片描述
    有一些最基本的特征:

    1、后一代语言不会凭空产生,都是前一代语言的基础之上迭代出来的,汇编是机器语言写的,C第一代是汇编语言写的(后面C语言实现了自举,自己把自己举起来了,用C实现了对C语言的迭代),我认为新一代的语言也需要用高级语言开发,并且逐步实现自举;

    2、后一代语言都比前一代语言,更接近人类本身的语言,简单说就是“更好学,更易懂,逻辑完备”;不要说给大家01010的代码了,就是给ASM(汇编)大家看,估计现在程序员没几个能读懂吧~;因此,组件化(widgets),可视化都是不错的选择;但是,这里面可视的逻辑表达是一个难点,如果不具备“图灵完备”的逻辑能力,语言属性就会大打折扣;
    给大家看几个界面:

    在这里插入图片描述
    ivx.cn 这个软件逻辑编辑界面采用的是“基于事件的触发逻辑”,来进行逻辑编辑的

    在这里插入图片描述
    mendix的基于流程(图)模式的逻辑编排界面,和mendix是典型面向“过程逻辑的”,流程图式的

    就我个人而言,我觉得iVX的设计更容易掌握,因为画流程图的时候,没办法知道每一个分支的后续“信息丰度”,很难设计的好看可读(很容易信息重叠),这个问题很难解决,算法类似于芯片中电路设计的自动优化。

    3、新的语言要保留现有“成果和概念”,云计算、面向对象、前端数据驱动、多端支持、前后台分离、优秀有前后台框架、应用全生命周期管理、Devops、减轻开发环境配置(最好不要配置)、中台、IDE和编译环境一体等等

    例如,与云计算结合,比如说后台建立在高效的云计算框架或产品上;例如面向对象,虽然有很多面向**,但是我觉得都应该建立在面向对象的基础之上);

    4、少写代码或不写代码,有了前面的逻辑编辑能力,这一步就可能实现。

    最后推荐几款,都是做了十来年的产品,我觉得都和最新的编程语言比较接近,iVX mendix outsystems Appian,都做得不错,其中iVX是国产的。

    展开全文
  • 计算机语言通常分为三类:即机器语言,汇编语言和高级语言。 1. 机器语言 机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。这种指令集,称机器码(machine code),是电脑的CPU可直接...
  • 高级语言简介  高级语言,它是在低级语言的基础上,采用接近于人类自然语言的单词和符号来表示一组低级语言程序,使编程变得更加简单,易学,且写出的程序可读性强。 高级语言的优点  1、高级语言接近算法语言,...
  • 高级语言分类

    千次阅读 2017-05-20 11:24:54
    高级语言根据用途不同有很多分类,主要可以分成编译型语言和解释型语言。当然,也有一些人为了一些特殊的目的制造了一些四不像的混合型语言。 编译型语言 编译型语言包括 C、C++、Fortran、Pascal、Delphi 等。...
  • 00342高级语言程序设计(一).rar
  • 计算机语言分为三种:机器语言、汇编语言和高级语言 1.机器语言 机器语言是用二进制代码表示计算机能直接识别和执行的一种机器指令的集合,它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。 优点:...
  • 机器语言、汇编语言、高级语言

    千次阅读 2018-03-10 16:10:21
    机器语言、汇编语言、高级语言 指令部分的示例0000 代表 加载(LOAD)0001 代表 存储(STORE)0010 代表 加法(ADD)...寄存器部分的示例0000 代表寄存器 A0001 代表寄存器 B...存储器部分的示例000000000000 代表...
  • 计算机语言---机器语言、汇编语言、高级语言

    千次阅读 多人点赞 2018-12-01 08:05:22
    计算机语言分为三种:机器语言、汇编语言和高级语言   1.机器语言  机器语言是用二进制代码表示计算机能直接识别和执行的一种机器指令的集合,它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。 ...
  • 编程语言(高级语言)的划分与描述

    千次阅读 2018-06-02 00:54:02
    编程语言(高级语言)的分类与描述 编译型和解释型 计算机不能直接理解高级语言,仅仅能直接理解机器语言,所以必需要把高级语言翻译成机器语言,计算机才干运行高级语言编写的程序。翻译的方式有两种,一个是...
  • 机器语言,汇编语言和高级语言的区别和互相间的关系
  • 自考 00342 高级语言程序设计(一) 教材
  • 高级语言程序设计历届试题 高级语言程序设计历届试题 高级语言程序设计历届试题
  • 高级语言与低级语言的区别

    千次阅读 2016-07-16 11:12:03
    一般来讲高级语言和低级语言有一下特点: 高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好 低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性...
  • 翻译程序:是指的将高级语言翻译成机器语言的过程。 预备知识: 计算机的层次结构大致可以分为五层结构:高级语言、汇编语言、操作系统、机器语言、微指令系统。 翻译程序可以分为两种情况:编译程序和解释程序 ...
  • 文章目录高级语宫及其语法描述(一)程序语言的定义(二)高级语言的一般特性1、高级语言的分类2、数据类型与操作 高级语宫及其语法描述 (一)程序语言的定义 编译程序要对程序进行正确的翻译,首先要对程序设计...
  • 高级语言的运行机制

    千次阅读 2019-02-25 21:58:37
    计算机高级语言按程序的执行方式可以分为编译型和解释型两种。 1、编译型语言 因为编译型语言是一次性地编译成机器码,所以可以脱离开发环境独立的运行,而且通常运行效率较高;但因为编译型语言的程序被编译成...
  •  计算机语言通常分为三类:即机器语言,汇编语言和高级语言。   1. 机器语言  机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的...
  • Shader三大主流高级语言

    千次阅读 2018-11-27 16:34:40
    Shader三大主流高级语言概述   一、HLSL:基于Direct3D多媒体编程接口   二、GLSL :基于OpenGL开放图形库   三、CG:支持OpenGL和Direct3D   五、Unity官方文档Shader说明 官方文档地址:...
  • 高级语言.汇编语言和机器语言

    千次阅读 2019-04-11 16:54:19
    (Machine language)机器语言Machine Language(低级语言)机器语言是计算机唯一能接受和执行的语言。机器语言由二进制码组成,每一串二进制码叫做一条指令。一条指令规定了计算机执行的一个动作。一台计算机所能...
  • 机器语言 所有的代码里面只有0和1 优点:直接对硬件产生作用,程序的执行效率非常高 缺点:指令又多又难记、可读性差、无可移植性 ...非常接近自然语言的高级语言,语法和结构类似于普通英文 优
  • 高级语言程序设计》.迟成文 自学考试教材,讲解透彻,非常适合自学。
  • 看了一篇讲解高级语言、汇编语言和机器语言的博客,感觉很受益,在这里简单总结一下。 1. 机器语言 计算机执行的二进制命令,都是0和1表示的。 2. 汇编语言 具有一定意义的文字命令,与机器语言一一对应。汇编语言...
  • 分别用机器语言、汇编语言、C语言(高级语言)来写一个计算1+1的程序 1) 机器语言:简直是天书!!! 10111000 00000001 00000000 00000101 00000001 00000000 2) 汇编语言:可读性稍微好一点,但是麻烦 ...
  • 此书是电子工业出版社的编程卓越之道第二卷,运用底层语言思想编写高级语言代码。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 601,534
精华内容 240,613
关键字:

高级语言