这个问题称为机器指令的寻址方式,本节我们详细地讨论机器指令的寻址方式问题。设X=011表示操作数为相对寻址方式。显然,变址寻址方式的地址变化范围更大。......
2023-11-18
如何把算法中的基本操作表示为计算机可以理解的形式呢?方法就是为这些基本操作编码。人给计算机发出的命令称作指令。我们把编码表示的计算机可识别和处理的命令称为机器指令,或简称指令。
分析算法中的基本操作可知,所有的基本操作都包含两个信息:一个是该操作的功能信息,即要执行什么样的操作;一个是该操作的数据处理信息,即要对什么数据进行操作。
因此,基本操作的编码表示形式——机器指令也由两部分组成,表示要执行什么样操作的编码部分称作操作码,表示要对什么数据进行操作的部分称作操作数。换句话说,不同的操作码表示了不同的机器指令,操作数表示了当前机器指令要处理的数据对象。
为了说明方便,这里我们设计一组简单的机器指令。假设用两个字节(16位)为机器指令编码,用前面4位作为操作码,用后面12位作为操作数。机器指令的格式如图3-2所示。
图3-2 机器指令格式
4位操作码共可表示24=16个不同的机器指令。我们规定每个机器指令的操作含义,如0001表示把某个内存单元中的数值存放到某个寄存器中(具体是哪个内存单元、哪个寄存器,要由操作数部分决定);0010表示把某个寄存器中的数值存放到某个内存单元中;0011表示把一个寄存器中的数值和一个内存单元中的数值相加后结果存入寄存器中;等等。
操作数的编码稍为复杂一些。我们说过,要处理的数据存放在内存中,但是,如果每次处理的数据都首先从某内存单元取出来,处理后又放回某内存单元中,这样的处理效率将非常低。我们可以为要处理的数据设计一些临时存放地,由于这些数据临时存放地的个数相对内存来说非常少,因此,不但可以用存取速度非常快的电子存储元件制造,而且编码表示的位数非常少。我们把这样的数据临时存放地称为寄存器。假使计算机中内存单元共有1024个,每个内存单元由8位组成。假使计算机中寄存器共有4个,每个寄存器也由8位组成。
由于很多操作一般都涉及两个操作数和一个操作结果,如加法指令就有两个操作数和一个操作结果,这样机器指令的操作数部分就需要表示出三个数据的存放地址。按操作数中所含有的内存地址个数来分,操作数的编码方法可分作:单内存地址、双内存地址和三内存地址。单内存地址、双内存地址和三内存地址即是指操作数部分所允许的内存地址个数分别为一个、两个或三个。
对于三内存地址方式编码来说,操作数部分最多允许有三个内存地址,这样的编码长度就会很长,但每条机器指令的功能很强;对于两内存地址方式编码来说,操作数部分最多允许有两个内存地址,这时需要令其中的两个操作数的地址相同,如加法指令可令被加数和操作结果为一个内存地址,即此时加法指令为把被加数内存单元的数值和加数内存单元的数值相加,其和存于被加数内存单元中,这样的编码长度相对较短,同时每条指令的功能有所降低。对于单内存地址方式编码来说,操作数部分最多允许有一个内存地址,这时需要令其中的两个操作数的地址为寄存器地址,例如,对加法操作来说,需要先把被加数放在一个寄存器中,然后加法指令实现把寄存器中的数值和一个内存单元中的数值相加,其和仍存于寄存器中,这样的编码长度相对很短,但每条指令的功能很弱,很多操作通常需要多条指令才能实现。
对于单内存地址方式编码来说,若操作数长度为12位,可以用其中的前2位编码表示寄存器的编号,用后10位编码表示内存单元地址。2位编码共可表示22=4个不同的寄存器;10位编码共可表示最大为210=1024个内存单元地址。
这样,我们可以把前面讨论的算法中的基本操作编码表示成机器指令。为说明方便,假设寄存器编号为00,表示寄存器A;寄存器编号为01,表示寄存器B;寄存器编号为10,表示寄存器C;寄存器编号为11,表示寄存器D。假设我们定义机器指令的操作码为0001,表示从某个内存单元中取出数值并置于某个寄存器的操作(称为取数操作),则机器指令为:
0001 00 0000100000
表示从内存单元100000中取出数值置于寄存器A中。
假设我们定义机器指令的操作码为0011,表示把某个寄存器中的数值加上某个内存单元中的数值,其和存于寄存器中的操作(称为加法操作),则机器指令为
0011 00 0000100001
表示把寄存器A中的数值加上内存单元100001中的数值,其和存于寄存器A中。
假设我们定义机器指令的操作码为0010,表示把某个寄存器中的数值存于某个内存单元的操作(称为存数操作),则机器指令为:
0010 00 0000100010
表示把寄存器A中的数值存于内存单元100010中。(www.chuimin.cn)
假设我们定义机器指令的操作码为0000,表示结束程序执行的操作(称为结束操作),则机器指令为:
0000 00 0000000000
表示结束程序执行。其余机器指令不再一一详细表示。
注意:机器指令表示操作数使用的是该操作数在内存单元的地址(或寄存器的编号)。这样,内存地址就表示操作数在内存单元中的地址,内存单元中的数值就表示某内存地址中的数值(也称作内存地址中的内容)。表3-1给出了上述定义下4条机器指令的二进制码和十六进制码表示格式和操作定义。因每个十六进制码表示4位二进制码,所以用十六进制码表示机器指令更为简洁。
表3-1 机器指令举例
计算机进行数据处理时,既要有程序,也要有数据。程序(这里为机器指令的形式)给出了数据处理的方法,数据即为数据处理所要具体处理的对象。程序和数据都存储在内存单元中,通常把内存单元分为程序区和数据区。程序区用于存储程序,数据区用于存储数据。假设内存为1024字节,程序区和数据区如图3-3所示划分。
图3-3 内存的划分
对于求解二进制数求和问题,假设内存单元100000中已存储了二进制数101,内存单元100001中己存储了二进制数111,并假使内存单元100010为保存和数的单元。假使程序存放于从内存地址0000000001开始的内存单元中,内存从字节编码,那么,二进制数求和问题的程序和数据在内存中的表示形式如下所示:
内存地址 内存单元内容 操作含义
0000000001 0001 00 0000100000 从内存100000中取数值置于寄存器A
0000000011 0011 00 0000100001 寄存器A的数值加内存单元100001的数值,和存于寄存器A
0000000101 0010 00 0000100010 把寄存器A的数值存于内存单元100010中
0000000111 0000 00 0000000000 结束程序执行
0000100000 101 数据x=5
0000100001 111 数据y=7
0000100010 1100 和sum存放单元
当我们让计算机从内存地址0000000001开始执行机器指令形式的程序时,计算机将完成sum=x+y=5+7=12的数据处理任务,并把计算结果(此例为1100)存于内存地址0000100010中。
这里给出的机器指令编码格式和编码方法是原理性的示例,实际计算机的机器指令编码格式和编码方法远比这里给出的复杂。
有关计算机导论的文章
这个问题称为机器指令的寻址方式,本节我们详细地讨论机器指令的寻址方式问题。设X=011表示操作数为相对寻址方式。显然,变址寻址方式的地址变化范围更大。......
2023-11-18
机器视觉系统在工业上的应用是以提高生产的柔性和自动化程度为目的。机器视觉系统由获取图像信息的图像测量子系统与决策分类或跟踪对象的控制子系统两部分组成。典型的机器视觉系统硬件结构如图5-42所示。2)机器视觉软件作为机器视觉系统的重要组成部分,机器视觉软件主要通过对图像的分析和处理,实现对待测目标特定参数的检测和识别。......
2023-06-15
机器人语言已成为机器人技术的一个重要部分。自机器人出现以来,美国、日本等机器人的原创国也同时开始进行机器人语言的研究。美国IBM公司也一直致力于机器人语言的研究,并取得了不少成果。1984年,Unimation公司又推出了在VAL基础上改进的机器人语言——VALⅡ语言。这是因为机器人的功能不断拓展,需要新的语言来配合其工作。......
2023-06-26
工业机器人可以在工业生产线中自动完成点焊、弧焊、喷漆、切割、装配、搬运、包装、码垛等作业。大部分工业机器人为关节型机器人,关节型机器人的机械臂是由若干个机械关节连接在一起的集合体。图5-31工业机器人的基本组成1—示教器;2—控制器;3—机器人本体图5-32典型六关节工业机器人①机座。......
2023-06-15
接近开关的状态又由装在刨台下部的四个接近块接近的情况所决定,如图10-9a所示。各接近开关在不同时序中的状态如图10-9b所示。图中,接近开关被撞后的状态为“1”;复位后的状态为“0”。......
2023-06-24
由于用二进制代码表示的机器语言指令不便于阅读、理解和记忆,因此在MCS-51指令系统中采用汇编语言指令来编写程序。汇编语言指令最多包含4个部分:[标号:]操作码助记符 [目的操作数] [,源操作数] [;注释]指令的表示方式称为指令格式。MCS-51指令系统具有255种操作码。图3-1汇编语言指令各部分内容示意图为了更好地理解指令格式及后续指令的寻址方式,结合第2章的内容,下面通过一个例子进行说明。......
2023-11-17
在2.4节中我们讨论了逻辑代数的基本概念,介绍了三种最基本的逻辑运算:逻辑与、逻辑或和逻辑非。本节介绍机器指令实现的逻辑运算,我们称这类指令为逻辑机器指令。逻辑机器指令通常在两种情况下会用到。......
2023-11-18
众所周知,数控机床对工件的加工是靠加工程序中的各种指令来完成的。为了维修的方便,现将一些常用的辅助功能M指令介绍如下;1.M00指令该指令用于数控机床在加工过程中,对工件和刀具的尺寸测量、手工换刀、手动变速等操作。不同的数控系统,其表示的方法也有所不同。......
2023-06-15
相关推荐