0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

面向机器语言有哪些

姚小熊27 来源:网络整理 2018-04-16 10:29 次阅读

机器语言原理

计算机的核心部件是CPU(中央处理单元),这是一个有着众多引脚的集成电路。计算机的所有动作均由其内部的“电子运算”而最终产生。从理解的角度上,可以把CPU看作是一套“约定”的集合。当我们通过一些引脚告诉它“1”、“加”、“2”、“运算”、“输出”等信号时,通过CPU设计制作时固定好的“约定”,在其另一些引脚上输出“3”的信号并通知显示设备显示出“3”的图象,我们就此得到了结果。——这些“约定”就是该CPU的机器语言。

不同的CPU有着不同的机器语言。不同机器语言基础上的软件无法通用。某一厂商新型的CPU为了软件的通用性往往向其早期的CPU保持兼容。机器语言是一切软件(包括操作系统)的基础,是计算机最终识别并执行的指令。

任何的机器语言都只接受两种信息:“指令”和“数据”;指令是告诉CPU做什么样的动作,而数据则是动作的对象。比如上文中的“加”、“运算”等是指令,而“1”、“2”是数据。从形式上讲,指令和数据都是二进制信息。但如果将数据当成指令交给CPU处理,通常CPU会无法理解而死机;反之如果将指令当成数据交给CPU则不会引起任何恶果,因为数据不会引起CPU任何的动作。

为验证这一说法,你可以随便将一个文件的扩展名改为COM在DOS下交给系统执行;也可以将命令处理器COMMAND.COM的扩展名改为TXT用记事本打开(切记不要存盘!)。

面向机器语言概述

面向机器语言是为特定的计算机或一类计算机而设计的程序设计语言。这种语言保留了机器语言的外形,即由操作码和地址码组成指令这个外形,但面向机器语言的语言是用符号形式而不用机器代码形式。这种语言能让使用者摆脱计算机的一些纯事物性的细节问题(如无需硬记机器指令代码、摆脱了二-十进制转换问题和分配内存问题等),而专心考虑程序间的内在联系。这类语言的代表是汇编语言。

面向机器语言有哪些

面向机器语言有哪些

1、机器语言

机器语言程序由机器指令构成,这些机器指令按照执行顺序依次排列,运行时依次执行完成某个特定的计算或任务。

机器指令是CPU能直接识别并执行的指令。机器指令由物理部件的若干位二进制0、1状态体现,机器指令程序运行前需要存储到内存,正确的机器指令一旦送入CPU被译码后就将变成动作予以执行。

如图1-1所示,机器指令面向机器,因机器而异。不同的机器具有不同的机器指令,因而具有不同的机器语言。所谓不同的机器,是指具有不同CPU(中央处理器)的计算机。由于机器指令与CPU紧密相关,所以不同种类的CPU所对应的机器指令也就不同,而且它们的指令系统往往相差很大。但对同一系列的CPU来说,为了满足各型号之间良好的兼容性,设计者一般要做到:新一代CPU的指令系统必须兼容先前开发的同系列CPU的指令系统。只有这样,先前开发出来的各类程序在新一弋CPU上才能正常运行。

面向机器语言有哪些

机器指令通常由操作码和操作数两部分组成,操作码指出该指令所要完成的操作,即指令的功能,操作数指出参与运算的对象,以及运算结果所存放的位置等。由于机器指令由物理部件的若干位二进制0、1状态体现,因此机器指令的最直接的记忆形式就是表示这一指令状态的二进制数,这个二进制数就称作该机器指令的二进制代码指令。由于二进制数和八进制数,以及十六进制数的特殊关系,因此该二进制代码指令对应的八进制数和十六进制数分别称作该机器指令的八进制或十六进制代码指令。

例如:B233H就是一条80*86的十六进制机器代码指令,这条指令的功能是将33H这个十六进制数送到DL寄存器。该机器指令的二进制代码指令是:1011001000110011,指令长度16位。

显然二进制代码指令与其状态对应直观,但记忆困难。而十六进制代码指令则方便记忆。因此80*86的代码指令通常都用十六进制表示。

用机器指令所写的程序称作机器指令程序,机器指令程序也指刚代码指令所写的程序。机器指令程序遵循冯·诺依曼原理:用二进制表示数,程序与数据都存储在同样的存储器,程序指令一般按存取顺序执行。

计算机出现初期只有一种机器语言,程序员只能用代码指令编写程序,即机器语言程序。用机器语言编写程序是相当艰苦的工作,必须由经过严格训练的专业技术人员承担,这是早期计算机之所以不能够广泛应用的最大障碍之一。

一方面机器语言十分重要,必须了解;另一方面机器代码指令程序使用又十分困难;因因此唯一能够替代机器语言的汇编语言就成为计算机科技人员必须掌握的一种计算机语言。

2、汇编语言

虽然用机器语言编写程序有许多不便,但程序执行效率高。所以,在保留“程序执行效率高”的前提下,人们开始着手研究一种能大大改善程序可读性的编程方法。即选用能反映机器指令功能的单词或词组来代替该机器指令的操作码,选用相应的符号表示CPU内部资源和内存等操作数,这就是汇编指令。

例如,汇编指令:

MOVAL,BL其对应的二进制指令为:1101100010001000,十六进制代码指令则为D888H,可见记忆机器指令相当困难。

而汇编指令中MOV源于Move,表示传送指令;AL、BL分别表示80x86的AL和BL寄存器。指令功能是将BL寄存器中的内容传送到AL寄存器。如此,令人难懂的二进制机器代码指令或十六进制机器代码指令就可以用通俗易懂的、具有一定含义的符号指令来表示了,这就是汇编指令的原意。我们称这些具有一定含义的符号,例如上述指令中的MOV,为助记符。用助记符、符号地址等组成的符号指令称为汇编格式指令或汇编指令。

因此,用助记符表示的机器指令称作汇编指令,用汇编指令编写的程序称作汇编指令程序。但汇编指令最终必须翻译成机器指令才能够在计算机上执行。

汇编语言是汇编指令集、伪指令集及其使用规则的统称。能够一对一地翻译成机器指令的这种用助记符表示的机器指令称作汇编指令。伪指令则是出现在汇编语言程序中的一些辅助性的说明,它不对应具体的机器指令,而是程序设计者与汇编过程中的翻译程序(即汇编)、连接程序,以及执行时如何装入的一种约定。

用汇编语言编写的程序称作汇编语言程序,或汇编语言源程序,也简称为源程序。汇编语言程序较之机器指令程序容易理解和维护。

汇编语言源程序是一个文本文件,它必须经过翻译才能够变成可执行的机器语言程序,这个翻译过程称作汇编。汇编的核心过程是将汇编指令逐条翻译成机器指令,这正是汇编语言中“汇编”一词的含义。

80x86汇编语言源程序扩展名为.asm,经过汇编以后生成的浮动地址二进制文件扩展名为.obj,.obj文件需要经过连接才能够生成可执行文件.exe。.exe是一个可以由操作系统执行的机器指令程序。图1-2给出了一个简单汇编语言程序与其机器指令程序之间的对应关系。

尽管不同的CPU有不同的汇编语言,但不同种类的汇编语言都有其共同规律。因此,学会一种汇编语言,再学习其他汇编语言就相对容易多了。

机器语言的发展

每种计算机都有自己独特的机器指令,比如,某种型号的计算机用8位二进制信息10001010表示加法指令,用00010011表示减法指令,等等。这些指令的执行由计算机的线路来保证,计算机在设计之初,先就要确定好每一条指令对应的线路逻辑操作。计算机处理信息的早期语言是所谓的机器语言,使用机器语言进行程序设计需要面向机器来编写代码,即需要针对不同的机器编写诸如01011100这样的指令序列。用机器语言进行程序设计是一项累人的工作,代码难以阅读和理解,一个简单的任务往往蕴含着编写大量的代码,而且同样的任务需要针对不同型号的计算机分别进行编写指令,因为一种型号的计算机用10001010表示加法指令,而另一种型号的计算机可能用11110000表示加法指令。因此,使用机器语言编程也称为面向机器编程。20世纪50年代出现了汇编语言,在编写指令时,用一些简单的容易记忆的符号代替二进制指令,但汇编语言仍是面向机器语言,需针对小同的机器编写不同的代码。习惯上称机器语言、汇编语言是低级语言。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 汇编语言
    +关注

    关注

    14

    文章

    404

    浏览量

    35189
  • 机器语言
    +关注

    关注

    0

    文章

    35

    浏览量

    10699
收藏 人收藏

    评论

    相关推荐

    c语言汇编语言机器语言的转化

    汇编语言经过汇编程序可以翻译成及期望语言,C语言是不是必须先转换为汇编语言,然后才能生成机器语言?还是C
    发表于 04-14 16:53

    汇编语言机器语言

    机器语言是计算机直接认识的语言,在电路中有高低电平表示,在逻辑中用0和1表示(0表示低或者开关的断开,1表示高或者开关的闭合)机器语言是最早的机器运行的
    发表于 03-13 17:22

    C语言为什么不能直接转换为机器语言呢?

    单片机只能识别机器语言。汇编把程序转换为机器语言,C语言把程序转换为汇编语言,那么为什么C语言不直接转换为
    发表于 04-12 16:51

    机器语言如何改变单片机程序感性认知

    高级语言被编译器变成最后的机器语言机器码被下载软件下载进单片机的flash,相关处理寄存器根据系统时钟一拍一拍工作,读取flash里的代码。 代码实际上是flash存储单元的电位状态,进而被理解为
    发表于 04-02 01:03

    什么是汇编语言

    (Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。汇编语言机器语言易于读写、调
    发表于 07-19 06:05

    C语言的编译步骤

    嵌入式C语言开发入门——程序编译计算机语言发展过程C语言编译步骤GCC编译命令程序执行计算机语言发展过程机器语言二进制数据汇编
    发表于 12-15 08:21

    机器语言的预处理与编译功能怎样

    什么是机器语言呢?机器语言的预处理与编译功能怎样?
    发表于 01-19 06:41

    解释型语言与编译型语言以及解释器与编译器之间的区别是什么

    类别优点缺点应用场合代表语言解释型 语言运行的时候将程序翻译成机器语言跨平台,开发效率高执行速度相对慢网页脚本、服务器脚本及辅助开发接口Java, JavaScript、VBScript、Perl
    发表于 02-28 12:51

    汇编语言详解

    汇编语言(Assembly Language)是面向机器的程序设计语言。   汇编语言中,用助记符(Memoni)代替操作码,用地址符号
    发表于 06-30 10:28 3909次阅读

    机器语言是什么_机器语言指令大全

    本文开始介绍看机器语言是什么或概念,其次介绍了机器语言缺点,最后介绍了机器语言指令概述及指令大全。
    的头像 发表于 04-16 10:08 7.3w次阅读
    <b class='flag-5'>机器语言</b>是什么_<b class='flag-5'>机器语言</b>指令大全

    高级语言和汇编语言_机器语言的区别

    本文首先介绍了高级语言的优缺点、汇编语言的优缺点及使用汇编语言的理由,其次介绍了机器语言的优缺点,最后阐述了高级语言和汇编
    的头像 发表于 04-16 10:28 2.9w次阅读

    80C51单片机汇编语言程序设计总结资料免费下载

    序设计语言分:机器语言、汇编语言和中高级语言 1.机器语言:硬件识别,二进制,无需翻译、直接执行,面向
    发表于 10-12 17:17 14次下载
    80C51单片机汇编<b class='flag-5'>语言</b>程序设计总结资料免费下载

    计算机的机器语言和汇编语言与高级语言的详细资料介绍

    计算机语言通常是一个能完整、准确和规则地表达人们的意图,并用以指挥或控制计算机工作的“符号系统”。计算机语言通常分为三类:即机器语言、汇编语言和高级
    的头像 发表于 02-06 16:11 5382次阅读

    基于使用PERSEUS-3计算机自制机器语言编程

    2007年,我开发了一种名为PERSEUS-3的计算机,以克服1980年自制的机器语言计算机遭受的挫折。其功能如下。
    的头像 发表于 05-01 10:03 1686次阅读

    什么语言适合做C2工具的免杀?

    机器语言(二进制代码)、汇编语言面向机器的程序设计语言)和符号语言。汇编
    的头像 发表于 02-16 10:30 775次阅读