2.2.1 指令和指令系统
指令是指能向计算机发出的能被计算机理解的命令,它能使计算机执行一个最基本的操作。指令全部由二进制编码“0”和“1”组成。
指令一般都由操作码和操作数两部分组成。操作码指出指令完成哪一种操作,如加、减、乘、除或传送等。操作数则指出参加操作的数据在主存中的存放位置。一条指令只能完成一个简单的动作,一个复杂的操作需要由许多简单的操作组合而成。
一台计算机能够识别的所有指令的集合称为计算机的指令系统。计算机的指令系统完备与否决定了该计算机处理数据的能力。不同的计算机系统通常都具有自己特有的指令系统,其指令在格式上也会有一些区别。
1)指令的执行过程
计算机完成某一任务的过程就是执行指令的过程。在程序运行之前,首先将程序和原始数据输送到计算机内存储器中,然后按照指令的顺序依次执行指令。计算机执行一条指令的过程可以粗略地分为几个基本的步骤:
(1)取指令:从内存储器中取出要执行的指令送到CPU内部的指令寄存器中;
(2)分析指令:把保存在指令寄存器中的指令送到指令译码器,译出该指令对应的操作以及参加操作的操作数的位置;
(3)取操作数:根据操作数的位置取出操作数;
(4)执行指令:运算器按照操作码的要求对操作数完成规定的运算,并把运算结果保存到指定的寄存器或内存单元;
(5)修改PC:对程序计数器进行修改,决定下一条指令的地址。
总之,计算机的基本工作过程可以概括为取指令、分析指令、取操作数、执行指令、修改PC,然后再取下一条指令,如此周而复始,直到遇到停机指令或外来事件的干预为止,其过程如图2.17所示。
图2.17 指令执行过程
2)指令类型
一台计算机的指令系统可以由上百条指令组成,这些指令按其功能可以分成六类:
(1)算术运算类:执行加、减、乘、除等算术运算的指令;
(2)逻辑运算类:执行或、与、非、移位、比较等逻辑运算的指令;
(3)数据传送类:执行取数、存数、传送等操作的指令,是指令系统中最基本的一类指令;
(4)程序控制类:执行无条件转移、条件转移、调用程序、返回等操作的指令;
(5)输入/输出类:执行输入、输出等实现内存和外部设备之间传输信息操作的指令;
(6)其他类指令:执行停机、空操作、等待等操作的指令。
3)指令的兼容性
某一类计算机中的程序能否在其他计算机上运行就是计算机指令的“兼容性”问题。一般来说,不同公司生产的CPU产品不能相互兼容。比如,Intel公司的PC机采用Pentium系列处理器,而苹果公司的计算机采用Power架构的处理器,两者的指令系统大相径庭,因此无法相互兼容。但Intel公司和AMD公司生产的CPU产品的指令系统几乎一致,可以相互兼容。
对于同一公司的不同系列产品,如Intel公司的产品经历了8088→80286→80386→80486→Pentium→PentiumII→PentiumIII→PentiumIV→PentiumD→Pentium至尊版→酷睿阶段的发展,从整体上来看,它们具有相同的基本结构和基本指令集。但由于各种机型推出的时间不同,在结构和性能上也有所差异,因此做到所有产品都完全兼容是不可能的。一般来说,对于同一公司的产品,通常采用“向下兼容”的原则,即新类型的处理器包含旧类型处理器的全部指令,从而保证在旧类型处理器上开发的系统能够在新的处理器中被正确运行。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。