为什么说机器语言是计算机可以直接识别和执行的语言

2022-10-07 深圳推广 技术文档

因为机器语言是二进制代码表示的计算机能直接识别执行的一种机器指令的集合;这种指令集被称为机器码,是电脑的CPU可直接解读的数据,是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。

php入门到就业线上直播课:进入学习
API 文档、设计、调试、自动化测试一体化协作工具:点击使用

本教程操作环境:windows10系统、DELL G3电脑。

为什么说机器语言是计算机可以直接识别和执行的语言

计算机能直接识别和执行的语言是机器语言。机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据。

机器语言是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。

使用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。进行编程序时,程序员需要自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。

这是一件十分繁琐的工作,编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。现在,除了计算机生产厂家的专业人员外,绝大多数程序员已经不再去学习机器语言了。

一条指令就是机器语言的一个语句,它是一组有意义的二进制代码。各计算机公司设计生产的计算机,其指令的数量与功能、指令格式、寻址方式、数据格式是差别的。从计算机的发展过程可以看到,由于构成计算机的基本硬件发展迅速,计算机的更新换代很快,这就存在软件如何跟上硬件的问题。

一台新机器推出交付使用时,只有少量系统软件(如操作系统等)可提交用户,大量软件是不断充实的,尤其是应用程序,有相当一部分是用户在使用机器时不断产生的。为了缓解新机器的推出致使原有应用程序不能继续使用的问题,各个计算机公司生产的同一系列的计算机时,尽管其硬件实现方法可以不同,但指令系统、数据格式、I/O系统等保持相同,因而软件完全兼容。

扩展知识:机器语言的指令格式

机器语言指令是一种二进制代码,由操作码和操作数两部分组成。操作码规定了指令的操作,是指令中的关键字,不能缺省。操作数表示该指令的操作对象。计算机的指令格式与机器的字长、存储器的容量及指令的功能都有很大的关系。从便于程序设计、增加基本操作并行性、提高指令功能的角度来看,指令中应包含多种信息。但在有些指令中,由于部分信息可能无用,这将浪费指令所占的存储空间,并增加了访存次数,也许反而会影响速度。因此,如何合理、科学地设计指令格式,使指令既能给出足够的信息,又使其长度尽可能地与机器的字长相匹配,以节省存储空间,缩短取值时间,提高机器的性能,这是指令格式设计中的一个重要问题。

计算机是通过执行指令来处理各种数据的。为了指出数据的来源、操作结果的去向及所执行的操作,一条指令必须包含下列信息:

(1)操作码。它具体说明了操作的性质及功能。一台计算机可能有几十条至几百条指令,每一条指令都有一个相应的操作码,计算机通过识别该操作码来完成不同的操作。

(2)操作数的地址。CPU通过该地址就可以取得所需的操作数。

(3)操作结果的存储地址。把对操作数的处理所产生的结果保存在该地址中,以便再次使用。

(4)下条指令的地址。执行程序时,大多数指令按顺序依次从主存中取出执行,只有在遇到转移指令时,程序的执行顺序才会改变。为了压缩指令的长度,可以用一个程序计数器(ProgramCounter,PC)存放指令地址。每执行一条指令,PC的指令地址就自动+1(设该指令只占一个主存单元),指出将要执行的下一条指令的地址。当遇到执行转移指令时,则用转移地址修改PC的内容。由于使用了PC,指令中就不必明显地给出下一条将要执行指令的地址。

一条指令实际上包括两种信息即操作码和地址码。操作码(OperationCode,OP)用来表示该指令所要完成的操作(如加、减、乘、除、数据传送等),其长度取决于指令系统中的指令条数。地址码用来描述该指令的操作对象,它或者直接给出操作数,或者指出操作数的存储器地址或寄存器地址(即寄存器名)。

指令包括操作码域和地址域两部分。根据地址域所涉及的地址数量,常见的指令格式有以下几种。

  • 三地址指令:一般地址域中A1、A2分别确定第一、第二操作数地址,A3确定结果地址。下一条指令的地址通常由程序计数器按顺序给出。

  • 二地址指令:地址域中A1确定第一操作数地址,A2同时确定第二操作数地址和结果地址。

  • 单地址指令:地址域中A 确定第一操作数地址。固定使用某个寄存器存放第二操作数和操作结果。因而在指令中隐含了它们的地址。

  • 零地址指令:在堆栈型计算机中,操作数一般存放在下推堆栈顶的两个单元中,结果又放入栈顶,地址均被隐含,因而大多数指令只有操作码而没有地址域。

  • 可变地址数指令:地址域所涉及的地址的数量随操作定义而改变。如有的计算机的指令中的地址数可少至 0个,多至6个。

  • 数组赋值方式有哪些c语言
    hover

    数组赋值方式有哪些c语言

    c 语言中数组赋值方式有六种:1. 直接赋值;2. 使用数组初始化器;3. 使用指针;4. 使用循环;5. 使用 memcpy() 函数;6. 使用 scanf() 函数。 C 语言数组赋值方式 在 C 语言中,数组是一种数据结构,它用于存储同一类型数据的集合。···

    2024-05-10
  • 浏览器插件是什么语言写的
    hover

    浏览器插件是什么语言写的

    浏览器插件通常使用以下语言编写:前端语言:javascript、html、css后端语言:c++、rust、webassembly其他语言:python、java 浏览器插件是什么语言写的? 浏览器插件(也称为扩展程序)通常使用以下语言编写: 前端语言: JavaScri···

    2024-05-10
  • 雷蛇鼠标驱动识别不出来鼠标怎么办
    hover

    雷蛇鼠标驱动识别不出来鼠标怎么办

    识别不出雷蛇鼠标的驱动程序可以通过以下步骤解决:检查硬件连接、更新驱动程序、重新安装驱动程序、检查 windows 设置、检查第三方软件冲突、执行系统文件检查器 (sfc) 和重置雷蛇 synapse。如果问题仍然存在,则可能是鼠标硬件出现···

    2024-05-07
  • group by和order by哪个先执行
    hover

    group by和order by哪个先执行

    sql 查询中 group by 和 order by 子句的执行顺序为:1. group by 先按指定分组列分组,计算聚合值;2. order by 后按排序列对分组后的数据排序。 在 SQL 查询中,GROUP BY 和 ORDER BY 子句的执行顺序如下: GROUP BY 先执行 GROUP···

    2024-04-29
  • ruby语言的特点有哪些
    hover

    ruby语言的特点有哪些

    ruby 语言的特点:易于学习,具有接近英语的简洁语法。面向对象,以对象方式组织数据和代码。动态类型化,允许变量在运行时更改数据类型。具有元编程功能,使程序员能够操作代码本身。支持块和闭包,提供强大的代码重用和可扩展性。···

    2024-04-10
  • pascal语言还有人用吗
    hover

    pascal语言还有人用吗

    尽管过去曾广泛流行,但 pascal 目前已被认为过时,主要使用于教育和爱好项目。虽然它易于学习且模块化,但它缺乏现代功能,且就业市场有限。 Pascal 语言是否仍在使用? Pascal 是一种历史悠久的编程语言,由尼克劳斯·威尔特于 197···

    2024-04-10
  • ruby语言用来干什么
    hover

    ruby语言用来干什么

    ruby 是一种面向对象的编程语言,广泛用于 web 开发(例如 rails 框架)、脚本和自动化、数据分析和科学计算、移动应用开发以及其他用途,包括游戏开发、机器学习和自然语言处理。 Ruby 语言的用途 Ruby 是一种面向对象的编程语言,···

    2024-04-10
  • ruby语言的应用领域
    hover

    ruby语言的应用领域

    ruby语言广泛应用于以下领域:web开发:ruby on rails、sinatra、padrino移动开发:rubymotion、jruby数据科学和机器学习:sciruby、tensorflow、keras系统管理:chef、puppet、ansible、saltstack桌面应用程序:qt、rubycocoa、ffi···

    2024-04-10
在线客服 13691917840 提交需求 二维码