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

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

3天内不再提示

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

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

机器语言是什么

机器语言(machinelanguage)是一种指令集的体系。这种指令集,称机器码(machinecode),是电脑CPU可直接解读的数据。机器码有时也被称为原生码(NativeCode),这个名词比较强调某种编程语言或库,它与运行平台相关的部份。

机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。

一种cpu的指令系统,也称cpu的机器语言。它是该cpu可以识别的一组由1和0序列构成的指令码。用机器语言编程序,就是从实用的cpu的指令系统中挑选合适的指令,组成一个指令系列。

一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如,操作码字段和地址码字段,其中操作码指明了指令的操作性质及功能,地址码则给出了操作数或操作数的地址。

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

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

机器语言是微处理器理解和使用的,用于控制它的操作二进制代码。

8086到Pentium的机器语言指令长度可以从1字节到13字节。

尽管机器语言好像是很复杂的,然而它是有规律的。

存在着多至100000种机器语言的指令。这意味着不能把这些种类全部列出来。

范例:

1、指令部份的范例

0000代表加载(LOAD

0001代表储存(SET)

。。。

2、暂存器部份的范例

0000代表暂存器A

0001代表暂存器B

。。。

3、内存部份的范例

000000000000代表位址为0的内存

000000000001代表位址为1的内存

000000001000代表位址为16的内存

100000000000代表位址为2^11的内存

4、集成范例

0000,0000,000000001000代表LOADA,16

0000,0000,000000000001代表LOADB,1

0000,0001,000000001000代表STOREB,16

0000,0001,000000000001代表STOREB,1

机器语言缺点

1.大量繁杂琐碎的细节牵制着程序员,使他们不可能有更多的时间和精力去从事创造性的劳动,执行对他们来说更为重要的任务。如确保程序的正确性、高效性。

2.程序员既要驾驭程序设计的全局又要深入每一个局部直到实现的细节,即使智力超群的程序员也常常会顾此失彼,屡出差错,因而所编出的程序可靠性差,且开发周期长。

3.由于用机器语言进行程序设计的思维和表达方式与人们的习惯大相径庭,只有经过较长时间职业训练的程序员才能胜任,使得程序设计曲高和寡。

4.因为它的书面形式全是“密”码,所以可读性差,不便于交流与合作。

5.因为它严重地依赖于具体的计算机,所以可移植性差,重用性差。

这些弊端造成当时的计算机应用未能迅速得到推广。

机器语言指令概述

汇编语言指令编写的汇编语言程序输入计算机后,计算机并不能识别和执行,必须由机器提供的汇编程序将它翻译成由机器语言指令组成的程序,才能由计算机执行。通常这种翻译工作不必由人来干预。本节只简单介绍一下机器语言指令的构成,以便读者在实际应用(实时控制)中也可完成类似的转换工作。

8086/8088的机器语言指令为可变字节的指令,一条指令可以由1~7个字节组成,因此指令格式比较灵活。其格式如下所示:

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

其中,opcode为操作码字段;d指示操作方向;S表示符号扩展;W指示操作数宽度;mod用来区分是寄存器寻址还是存储器寻址;reg寄存器编码;r/m寄存器或存储器;disp-low位移量低位;disp-high位移量高位;data-low立即数低位;data-high立即数高位。

格式中给出了1~6个字节的情形。如果指令中显示指定段跨越前缀,则在机器语言指令中使用放在该指令之前的一个字节来表示,其格式如下所示:

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

其中,001和110均为段前缀标志;SEG指定四个段寄存器中的一个,00为ES,01为CS,10为SS,11为DS

1、操作码的机器语言表示

操作码一般占用第一个字节的7~2位,但有些指令的操作码占用第一个字节的7~1位,甚至还可能占用第二个字节的5~3位作为扩展操作码。

在多数操作码中,常使用某些位来指示某些信息。例如第一个字节中的W位用来指示该指令是对字节(W=1)还是对字节(W=0)进行操作。在双操作数指令中,d位指定寄存器是用于目的操作数(d=1)还是用于源操作数(d=0)。另外,在立即寻址方式的指令中,S位表示符号扩展,若立即数为8位,但要求扩展成16位数时,S位为1。S位和W位在立即寻址方式指令中联用表示:

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

2、寻址方式的机器语言表示

指令中除操作码占用的位数外,其它位则用来表示操作数或操作数的地址。8086/8088用一个寻址方式字节来表示操作数的寻址方式,它通常是机器指令的第二个字节。

第二个字节中的reg字段表示寻址方式为寄存器方式,在双操作数指令的情况下,由reg和第一个字节中的W位联合指定一个寄存器作为两个操作数中的一个操作数。Reg与W位联合指定的寄存器如表6-4-1所示。

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

第二个字节中的mod字段与r/m字段相结合以确定另一个操作数的寻址方式。其中:

Mod=00时为无位移量字节的存储器寻址方式。由r/m字段指定确切的寻址方式,其中当r/m=110时指定为直接寻址方式,此时指令中跟有16位位移量D16,用来指出操作数的偏移地址。

Mod=01时为带一个位移量字节的存储器寻址方式。由r/m字段指定确切的寻址方式。其中位移量字节为一个带符号数,因此它的范围是-128~+127。当用这个位移量D8计算存储器地址时,它将被符号扩展成16位。

Mod=10时为带两个位移量字节的存储器寻址方式。由r/m字段指定确切的寻址方式。第一个偏移量字节是偏移量的低8位,第二个偏移量字节是偏移量的高8位。这个16位的位移量也是一个带符号数,因此它的范围是-32768~+32767。Mod=11时为寄存器寻址方式。r/m字段表示寄存器,也是与第一个字节的W位一起确定一个寄存器。Mod字段与r/m字段联合使用确定寻址方式由表6-4-2给出。

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

机器语言指令

1.compiledmachinelanguageinstruction

编译的机器语言指令

2.Aphraseoftenassociatedwithamacroinstruction,whereonesourcelanguageinstructionisconvertedtoseveralmachinelanguageinstructions.

通常与宏指令有关的一种用语,即把一条源语言指令转换成若干条机器语言指令。

3.asinglecomputerinstructionthatresultsinaseriesofinstructionsinmachinelanguage.

一个单一的计算机指令可引起一系列的机器语言指令。

4.Areportpreparedbyaprocessorwhichshowsthecodingasoriginallywritten,anycommentsthatmayhavebeenwritten,andthemachinelanguageinstructionsproduced.

处理机作成的一种报告,其上表示出原写入的编码、注释以及产生的机器语言指令。

5.Asingleinstructioninprogramminglanguagethatresultsinaseriesofinstructionsinmachinelanguage.

宏指令计算机编程语言中可以在机器语言中形成一系列指令的命令

6.Assembler:Aprogamminglanguageinwhichonemnemonicsourcestatementiscodedforeachmachine-levelinstruction.

汇编语言:一种编程语言,每一条助记符源语句都对应一条机器指令。

7.Anassemblerlanguageprogrammerwritesonemnemonicinstructionforeachmachine-levelinstruction.

汇编语言程序设计员为每条机器指令写一条助记符指令。

8.machine-independentcommandlanguage

独立于机器的命令语言

9.Aprogramthattranslatesinstructionswritteninahighlevelprogramminglanguageintomachinelanguage.

一种把用高级编程语言编写的指令翻译成机器语言的程序。

10.Aprogramminglanguagewhoseinstructionsareexpressedinsymbolsconvenienttohumansratherthaninmachinelanguage.

不用机器语言而用对人方便的符号表示各种指令的一种编程语言。

11.Aprogramthattranslatesaninstructionintoamachinelanguageandexecutesitbeforeproceedingtothenextinstruction.

解释程序将指令翻译为机器语言并在执行下一个指令之前完成此指令的程序

12.(computerscience)aprogramthatdecodesinstructionswritteninahigherorderlanguageandproducesamachinelanguageprogram.

(计算机科学上)用更高命令语言所写的解码指令程序来产出机器语言程序。

13.Otherprogramsthentranslatetheinstructionsintomachinelanguageforthecomputertouse.

接着将程序翻译成指令成为机器语言,给计算机使用。

14.Theprocesswherebyadigitalcomputertranslatestheinstructionsofaprogramwritteninahigh-levellanguageintotheirmachinelanguageequivalents.

数字计算机借此把高级语言编写的程序中的指令翻译成与其等价的机器语言程序的处理过程。

15.Assemblylanguageisactuallyacommand-basedredivsentationoftheactualinstructionsthatyourcomputer‘sprocessorruns.

汇编语言实际上是你计算机处理器实际运行的指令的命令形式表示法。

16.Acomputer-orientedlanguagewhoseinstructionsconsistonlyofcomputerinstructions.

一种面向计算机的语言,其指令只由计算机指令组成。

17.Abasicorfundamentalunit,oftenreferringtothelowestofamachineinstructionorlowestunitoflanguagetranslation.

一种基本单位或基础单位,常常指机器指令的最低一级或语言翻译的最低的单位。

18.Asoftwaredevelopmenttoolthattranslateshuman-readableassemblylanguageprogramsintomachine-languageinstructionsthattheprocessorcanunderstandandexecute.

一个能把人可读的汇编语言程序转换到处理器可理解和运行的机器指令的软件开发工具。

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

    关注

    1

    文章

    573

    浏览量

    35341
  • 机器语言
    +关注

    关注

    0

    文章

    35

    浏览量

    10695
收藏 人收藏

    评论

    相关推荐

    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

    AVR单片机汇编指令系统相关资料分享

    AVR单片机指令系统计算机的指令系统是一套控制计算机操作的代码,称之为机器语言。计算机只能识别和执行机器语言指令。为了便于人们理解、记忆和
    发表于 11-23 06:58

    C语言的编译步骤

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

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

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

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

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

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

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

    面向机器语言有哪些

    本文开始介绍了机器语言原理,其次介绍了面向机器语言的概念与分类,最后介绍了机器语言的发展。
    的头像 发表于 04-16 10:29 1.1w次阅读
    面向<b class='flag-5'>机器语言</b>有哪些

    微机系统指令机器码表示方法

     一、机器语言指令的编码目的和特点   汇编语言源程序:   用汇编语言 (即主要由指令系统组成的
    发表于 10-17 16:38 9次下载
    微机系统<b class='flag-5'>指令</b>的<b class='flag-5'>机器</b>码表示方法

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

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

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

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

    汇编语言的产生 汇编语言的组成

    机器语言**是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。
    的头像 发表于 09-20 14:52 604次阅读
    汇编<b class='flag-5'>语言</b>的产生 汇编<b class='flag-5'>语言</b>的组成