机器语言指令概述
- 格式:doc
- 大小:68.50 KB
- 文档页数:2
机器语言百科名片机器语言是直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义,例如某台计算机字长为16位,即有16个二进制数组成一条指令或其它信息。
16个0和1可组成各种排列组合,通过线路变成电信号,让计算机执行各种不同的操作。
目录简介指令格式寻址方式种类特点发展过程编辑本段简介一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如:操作码字段地址码字段其中操作码指明了指令的操作性质及功能,地址码则给出了操作数或操作数的地址。
各计算机公司设计生产的计算机,其指令的数量与功能、指令格式、寻址方式、数据格式都有差别,即使是一些常用的基本指令,如算术逻辑运算指令、转移指令等也是各不相同的。
因此,尽管各种型号计算机的高级语言基本相同,但将高级语言程序(例如Fortran语言程序)编译成机器语言后,其差别也是很大的。
因此将用机器语言表示的程序移植到其他机器上去几乎是不可能的。
从计算机的发展过程已经看到,由于构成计算机的基本硬件发展迅速,计算机的更新换代是很快的,这就存在软件如何跟上的问题。
大家知道,一台新机器推出交付使用时,仅有少量系统软件(如操作系统等)可提交用户,大量软件是不断充实的,尤其是应用程序,有相当一部分是用户在使用机器时不断产生的,这就是所谓第三方提供的软件。
为了缓解新机器的推出与原有应用程序的继续使用之间的矛盾,1964年在设计IBM360计算机时所采用的系列机思想较好地解决了这一问题。
从此以后,各个计算机公司生产的同一系列的计算机尽管其硬件实现方法可以不同,但指令系统、数据格式、I/O系统等保持相同,因而软件完全兼容(在此基础上,产生了兼容机)。
当研制该系列计算机的新型号或高档产品时,尽管指令系统可以有较大的扩充,但仍保留了原来的全部指令,保持软件向上兼容的特点,即低档机或旧机型上的软件不加修改即可在比它高档的新机器上运行,以保护用户在软件上的投资。
机器语言举例机器语言是一种由机器可以直接理解和执行的二进制代码,它是计算机能够理解和执行的最低级别的语言。
在计算机科学中,机器语言通常用于编程和控制计算机硬件。
以下是一些常见的机器语言指令和示例:1. MOV指令:MOV指令用于将数据从一个位置移动到另一个位置。
例如,MOV AX, BX表示将BX寄存器中的数据移动到AX寄存器中。
2. ADD指令:ADD指令用于将两个数相加。
例如,ADD AX, BX表示将AX寄存器和BX寄存器中的数相加,并将结果存储在AX寄存器中。
3. SUB指令:SUB指令用于从一个数中减去另一个数。
例如,SUB AX, BX表示将BX寄存器中的数从AX寄存器中的数中减去,并将结果存储在AX寄存器中。
4. JMP指令:JMP指令用于无条件跳转到程序中的另一个位置。
例如,JMP Label表示跳转到标签为Label的位置。
5. CMP指令:CMP指令用于比较两个数。
例如,CMP AX, BX将比较AX寄存器和BX寄存器中的数,并设置标志位以指示它们之间的关系。
6. JZ指令:JZ指令用于在标志位为零时跳转。
例如,JZ Label表示如果标志位为零,则跳转到标签为Label的位置。
7. CALL指令:CALL指令用于调用一个子程序。
例如,CALL Subroutine表示调用名为Subroutine的子程序。
8. RET指令:RET指令用于从子程序返回到调用程序。
例如,RET 将从最近调用的子程序返回到调用它的位置。
9. AND指令:AND指令用于逻辑与操作。
例如,AND AX, BX表示对AX寄存器和BX寄存器中的数进行逻辑与操作。
10. OR指令:OR指令用于逻辑或操作。
例如,OR AX, BX表示对AX寄存器和BX寄存器中的数进行逻辑或操作。
这些是机器语言中常用的一些指令和示例,它们可以帮助程序员编写底层的程序,直接控制计算机硬件。
机器语言虽然直接,但对于程序员来说通常比较难以理解和编写,因此通常会使用高级语言来编写程序,然后将其编译成机器语言。
计算机组成原理(白中英)第4章指令系统指令系统概述寻址方式指令系统20XX年3月15日10时45分概述指令:是指示计算机某种操作的命令。
微指令,机器指令,宏指令指令系统:一台计算机中所有机器指令的集合。
它是机器硬件设计的依据,也是软件设计的基础。
它决定了一台计算机硬件的主要性能和基本功能。
是硬件和软件间的界面。
系列计算机:有共同的指令集,相同的基本体系结构。
CISC和*****X年3月15日10时45分2一个完善的指令系统应满足:1.完备性:指令丰富,功能齐全,使用方便。
1.完备性:指令丰富,功能齐全,使用方便。
完备性 2.有效性程序占空间小,执行速度快。
有效性: 2.有效性:程序占空间小,执行速度快。
3.规整性对称性,匀齐性,规整性:3.规整性:对称性,匀齐性,指令格式和数据格式的一致性。
据格式的一致性。
4.兼容性兼容性:4.兼容性:向上兼容”----系列机中低档机上运行“向上兼容”----系列机中低档机上运行的软件可以在高档机上运行。
的软件可以在高档机上运行。
20XX年3月15日10时45分计算机语言与硬件结构的关系高级语言的语句和用法与具体机器的指令系统无关;低级语言分机器语言和汇编语言,他们和具体机低级语言分机器语言和汇编语言,器的指令系统密切相关。
器的指令系统密切相关。
汇编语言与硬件的关系密切,编写的程序紧凑、汇编语言与硬件的关系密切,编写的程序紧凑、占内存小、速度快,占内存小、速度快,特别适合与编写经常与硬件打交道的系统软件;打交道的系统软件;而高级语言不涉及机器的硬件结构,通用性强、编写程序容易,件结构,通用性强、编写程序容易,特别适合与编写与硬件没有直接关系的应用软件。
编写与硬件没有直接关系的应用软件。
20XX年3月15日10时45分4概述机器指令的要素C C C C 操作码源操作数目的操作数下一条指令的引用指令字(简称指令)即表示一条指令的机器字。
指令字(简称指令)即表示一条指令的机器字。
机器人编程常用的四大语言介绍伴随着机器人的发展,机器人语言也得到了发展和完善,机器人语言已经成为机器人技术的一个重要组成部分。
机器人的功能除了依靠机器人的硬件支撑以外,相当一部分是靠机器人语言来完成的。
早期的机器人由于功能单一,动作简单,可采用固定程序或者示教方式来控制机器人的运动。
随着机器人作业动作的多样化和作业环境的复杂化,依靠固定的程序或示教方式已经满足不了要求,必须依靠能适应作业和环境随时变化的机器人语言编程来完成机器人工作。
下面就来了解一下常见的机器人编程语言吧!VAL语言一、VAL语言及特点VAL语言是美国Unimation公司于1979年推出的一种机器人编程语言,主要配置在PUMA和UNIMATION等型机器人上,是一种专用的动作类描述语言。
VAL语言是在BASIC语言的基础上发展起来的,所以与BASIC语言的结构很相似。
在VAL的基础上Unimation公司推出了VALⅡ语言。
VAL语言可应用于上下两级计算机控制的机器人系统。
上位机为LSI-11/23,编程在上位机中进行,上位机进行系统的管理;下位机为6503微处理器,主要控制各关节的实时运动。
编程时可以VAL语言和6503汇编语言混合编程。
VAL语言命令简单、清晰易懂,描述机器人作业动作及与上位机的通信均较方便,实时功能强;可以在在线和离线两种状态下编程,适用于多种计算机控制的机器人;能够迅速地计算出不同坐标系下复杂运动的连续轨迹,能连续生成机器人的控制信号,可以与操作者交互地在线修改程序和生成程序;VAL语言包含有一些子程序库,通过调用各种不同的子程序可很快组合成复杂操作控制;能与外部存储器进行快速数据传输以保存程序和数据。
VAL语言系统包括文本编辑、系统命令和编程语言三个部分。
在文本编辑状态下可以通过键盘输入文本程序,也可通过示教盒在示教方式下输入程序。
在输入过程中可修改、编辑、生成程序,最后保存到存储器中。
在此状态下也可以调用已存在的程序。
机器语言机器语言(machine language)是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合,是一种指令集的体系。
这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据。
有时也被称为原生码(Native Code),这个名词比较强调某种编程语言或库,它与运行平台相关的部份。
其实它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。
也具有灵活、直接执行和速度快等特点。
不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。
一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如,操作码字段和地址码字段,其中操作码指明了指令的操作性质及功能,地址码则给出了操作数或操作数的地址。
用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。
手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。
这是一件十分繁琐的工作。
编写程序花费的时间往往是实际运行时间的几十倍或几百倍。
而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。
除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。
机器语言的特点:1、机器语言是微处理器理解和使用的,用于控制它的操作二进制代码。
2、8086到Pentium的机器语言指令长度可以从1字节到13字节。
3、尽管机器语言好像是很复杂然而它是有规律的。
4、存在着多至100000种机器语言的指令。
这意味着不能把这些种类全部列出来。
计算机的指令格式与机器的字长、存储器的容量及指令的功能都有很大的关系。
从便于程序设计、增加基本操作并行性、提高指令功能的角度来看,指令中应包含多种信息。
但在有些指令中,由于部分信息可能无用,这将浪费指令所占的存储空间,并增加了访存次数,也许反而会影响速度。
6.4 机器语言指令概述
用汇编语言指令编写的汇编语言程序输入计算机后,计算机并不能识别和执行,必须由机器提供的汇编程序将它翻译成由机器语言指令组成的程序,才能由计算机执行。
通常这种翻译工作不必由人来干预。
本节只简单介绍一下机器语言指令的构成,以便读者在实际应用(实时控制)中也可完成类似的转换工作。
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。
6.4.1 操作码的机器语言表示
操作码一般占用第一个字节的7~2位,但有些指令的操作码占用第一个字节的7~1位,甚至还可能占用第二个字节的5~3位作为扩展操作码。
在多数操作码中,常使用某些位来指示某些信息。
例如第一个字节中的W位用来指示该指令是对字节(W=1)还是对字节(W=0)进行操作。
在双操作数指令中,d位指定寄存器是用于目的操作数(d=1)还是用于源操作数(d=0)。
另外,在立即寻址方式的指令中,S位表示符号扩展,若立即数为8位,
6.4.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给出。