首页 计算机组成原理-第5章 指令系统

计算机组成原理-第5章 指令系统

举报
开通vip

计算机组成原理-第5章 指令系统第五章指令系统5.9IBM大型机指令系统简介5.1指令系统概述5.2指令格式5.3数据在内存中的存放格式5.4指令的寻址方式(编码方式)5.5指令的类型5.6指令系统的兼容性5.7精简指令系统计算机(RISC)简介5.8Pentium微处理器指令系统简介5.1指令系统概述计算机系统中运行的软件有系统软件和应用软件两种。系统软件对整个计算机系统进行调度、管理、监视、服务,为用户提供使用方便,扩大机器功能,提高机器使用效率。应用软件是用户针对某种领域实际应用需求而开发的软件。许多通用商品化的应用软件现已成为系统软件,如...

计算机组成原理-第5章 指令系统
第五章指令系统5.9IBM大型机指令系统简介5.1指令系统概述5.2指令格式5.3数据在内存中的存放格式5.4指令的寻址方式(编码方式)5.5指令的类型5.6指令系统的兼容性5.7精简指令系统计算机(RISC)简介5.8Pentium微处理器指令系统简介5.1指令系统概述计算机系统中运行的软件有系统软件和应用软件两种。系统软件对整个计算机系统进行调度、管理、监视、服务,为用户提供使用方便,扩大机器功能,提高机器使用效率。应用软件是用户针对某种领域实际应用需求而开发的软件。许多通用商品化的应用软件现已成为系统软件,如Word等。前述所有各种软件的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 基础就是计算机的指令系统。名词解释:指令:命令计算机直接进行某种基本操作的二进制代码串,也叫机器语言代码。每条指令可以完成一个独立的算术运算或逻辑运算操作。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令。微指令是微程序级的命令,它属于硬件;宏指令是由若干条机器指令组成的软件指令,它属于软件;而机器指令则介于微指令与宏指令之间。指令系统:一台计算机能直接理解与执行的全部指令的集合称为该机的指令系统,也叫机器语言。指令系统是进行计算机逻辑设计和编制程序的基本依据。它直接说明了这台计算机的功能.不同类型CPU的指令系统是不能混用与兼容的,但同一系列的CPU一般升级后指令都有扩充,并可兼容。复杂指令系统计算机(CISC)和精简指令系统计算机(RISC)计算机的性能与它所设置的指令系统有很大的关系,而指令系统的设置又与机器的硬件结构密切相关。通常性能较好的计算机都设有功能齐全、通用性强、指令丰富的指令系统,但这需要复杂的硬件结构来支持。系列(Series)计算机是指基本指令系统相同,基本体系结构相同的一系列计算机。一个系列往往有多种型号,各型号的基本结构相同。但由于推出的时间不同,所采用的器件也不同,因此在结构和性能有很大差异。系列机能解决软件兼容问题的必要条件使该系列的各机种有共同的指令集,旧机种上运行的各种软件可以不加修改的在新机种上运行。本章从指令格式、地址结构、寻址方式、指令类型等方面介绍。5.2.1指令的结构指令字:代表指令的一组二进制代码信息;指令长度:指令字中二进制代码的位数。位数越多,所能表示的操作信息和地址信息也就越多,使指令功能丰富。但会占用存储空间多,读取指令的时间可能增加。1、典型的指令格式操作码OP——指明操作性质的命令码,提供指令的操作控制信息。操作对象A——说明操作数存放的地址,有时则就是操作数本身。5.2指令格式OPA零地址指令例如:NOP、HLT,也叫无操作数指令一地址指令例如:递增,移位,取反,INCAX,NOTBX二地址指令例:[A1]+[A2]→[A1],[A2]为源地址,[A1]目的地址三地址指令例:[A1]+[A2]→[A3],其中[A1]、[A2]为源地址,[A3]为目的地址,操作后源地址内容不变仅被拷贝多地址指令:用于实现成批数据处理。OPOPAOPA1A2OPA1A2A32、指令格式的类型——根据操作对象地址长度的不同而划分。3、指令操作码的编码格式指令操作码的位数限制指令系统中完成操作的指令条数。固定格式操作码操作码长度固定,一般集中于指令字的前一个字段中。若操作码长度为K位,则它最多只能有2K条不同指令。在字长较长的大中型以及超级小型机上广泛使用。优点:有利于简化硬件设计,减少译码时间可变格式操作码通常在指令字中用一个固定长度的字段来表示基本的操作码,而对于一部分少地址指令则把它们的操作码扩充到该指令的地址字段,即操作码长度可以改变。这种方法在不增加指令字长度的情况下可表示更多的指令,但增加了译码和分析难度,需更多硬件支持。微机中常使用此方式。5.2.2指令操作码的扩展技术可变格式操作码的指令示例1假设某机器的指令长度为16位,包括4位基本操作码和三个4位地址码段。15…1211……87……43…..04位基本操作码可表示16个状态,因此如用4位操作码则能表示16条三地址指令,而用8位操作码则可表示256条二地址指令。而用12位操作码则可表示4096条一地址指令。OPA1A2A3同样情况下,如果需要三地址、二地址、一地址指令各15条、零地址指令16条,则一样能够采用可变格式操作码实现。例如可以这样规定:15条三地址指令的操作码为:0000~111015条二地址指令的操作码为:前4位1111,即11110000~1111111015条一地址指令的操作码为:前8位均为1,即111111110000~11111111111016条零地址指令的操作码为:前12位均为1,即1111111111110000~1111111111111111其中1111、11111111和111111111111作为扩展操作码标志。可变格式操作码的指令示例2再如:同样情况下用可变格式操作码分别形成三地址指令、二地址指令、一地址指令和零地址指令15、14、31、16条。按要求得到结果之一如下15条三地址为:0000~111014条二地址为:11110000~1111110131条一地址为:111111100000~11111111111016条零地址为:1111111111110000~1111111111111111其中1111、11111110、11111111和111111111111是扩展操作码标志可变格式操作码的指令示例35.2.3指令长度与机器字长的关系机器字长是指计算机能直接处理的二进制数据的位数,它与计算机的功能和用途有很大的关系,是计算机的一个重要技术指标。首先,字长决定了计算机的运算精度,字长越长计算机的运算精度越高,因此高性能的计算机字长较长。其次,地址码长度决定了指令直接寻址能力,若为n位,则给出的n位直接地址寻址2n字节。这对于字长较短(8位或16位)的微型机来说远远满足不了实际需要,扩大寻址能力的方法,一是通过增加机器字长来增加地址码的长度;二是采用地址扩展技术,把存储空间分成若干个段,用基地址加位移量的方法来增加地址码的长度。指令字长度是指一个指令字中包含二进制代码的位数。如指令字长度等于机器字长度的指令,称为单字长指令。指令的长度主要取决于操作码的长度、操作数地址的长度和操作数地址的个数。由于操作码的长度、操作数地址的长度及指令格式不同,各指令的长度不是固定的,指令的长度通常为字节的整数倍。指令的长度与机器的字长没有固定的关系,它既可以小于或等于机器的字长,也可以大于机器的字长。前者称为短格式指令,后者称为长格式指令。一条指令存放在地址连续的存储单元中。同一台计算机中可能既有短格式指令又有长格式指令,但通常是把最常用的指令(如算术逻辑运算指令、数据传送指令)设计成短格式指令,以便节省存储空间和提高指令的执行速度。在Pentium系列机中,指令格式也是可变的:由8位、16位、32位、64位不等。指令助记符由于硬件智能识别0和1,所以采用二进制操作码是必要的。但是我们用二进制书写程序却非常麻烦。为了便于书写程序,每条指令通常用3个或4个英文字母来表示。这种缩写码叫做指令助记符。111LAD取数101JSR存数100JMP跳转011MOV传送010SUB减法001ADD加法二进制操作码助记符典型指令8086微处理器的存储器管理Intel8086是字长16位的处理器,地址线20根,按字节编址,最大存储容量为1MB。地址范围是00000H-FFFFFH。由于8086微处理器是一个16位结构,可以表示64K个单元地址。地址范围是0000H-FFFFH。在16位字长的机器里,如何提供20位的地址?其具体实现方法:编程时,要将1MB存储器分成段,每段容量为64KB,这样段内地址可以用16位表示。四个专门存放段地址的寄存器:代码段CS:存放当前正在运行的程序代码。数据段DS:存放当前运行程序所用的数据。堆栈段SS:是一段特殊的存储区域。附加段ES:是一个辅助的数据区。每一个段寄存器可以确定一个段的起始地址。各段间可以连续、可以断开、可以完全重叠,也可以部分重叠。8086微处理器的存储器管理描述存储器地址的三个术语:物理地址(PA):在1MB的存储器中,每个存储单元都有一个唯一的20位的地址,称存储单元的物理地址。有效地址(EA):指段内的某个存储单元相对于该段段首地址的偏移量;逻辑地址:程序员编程使用的地址,用标识符号表示的;8086的逻辑地址一般写成:段地址:有效地址注意:每个存储单元只有唯一的物理地址,但它可以由不同的段地址和不同的有效地址组成。8086微处理器的存储器管理段基地址150有效地址(EA)150段基地址150000030Σ物理地址190地址计算示意图:物理地址的计算:PA=段地址×24+EA5.2.4数据在内存中的存放格式计算机中基本数据有逻辑数、定点数、无符号数、浮点数、字符数及数组等。目前微机所用的数据(字)长度一般为32位,4个字节。内存地址按字节编址。计算机指令系统可支持对字节、半字、字、双字的运算,有的还支持位操作。为便于硬件的实现,一般要求多字节数据采用对准数据边界的方式储存。不合要求则填充空白字节(无操作)代替。4字节32位存储器字地址0字地址4半字地址8半字地址10半字地址12字节地址15半字地址22对准边界(下图所示)格式存储数据:字节地址14字节地址19字节地址18字节地址16字节地址17字节地址20字节地址21地址048121620在数据对准边界存储的计算机中,对于以二进制表示的存储地址来说,半字地址的最低位、字地址的最低两位和双字地址的最低三位恒为零。这种方式的整个字的存储时间要短,需要1个存储周期。32位、4个字节地址048字节半字的一半一字的3/4半字有的计算机不要求对准边界存储数据,如下图所示,但这种方式增加硬件的复杂程度,并且有可能导致访问次数增加。例如存储一个字,则需要2个存储周期。半字另一半一字的1/4半字5.3指令的寻址方式(编码方式)寻址方式:指令中如何提供操作数或操作数地址。换句话说就是规定如何对地址字段作出解释以找到操作数。不同类型计算机的寻址方式亦有差别,但大多可以归结为立即寻址、直接寻址、间接寻址、变址寻址以及相对寻址等几种寻址方式,或者这几种方式的组合与变形。一、隐含寻址指操作数含在cpu的某个通用寄存器或内存的某指定单元中,指令中不直接给出操作数或操作数地址。如:MUL*MUL是操作码。*为乘数,而被乘数则隐含在累加器AX(16位乘法)或AL(8位乘法)中。I/O指令间接寻址时,作地址寄存器在乘除法指令存放被乘数、乘积的高16位DX在移位指令中作移位次数计数器CL在循环、数据串指令中作循环次数寄存器CX间接寻址时作地址寄存器;基址寻址、基址变址寻址时作基址寄存器;在XALT指令中作基址寄存器BX在BCD、ASCII码数据运算时作为累加器在XALT指令中作为变址寄存器AL在LAHF/SAHF指令中作为目的寄存器/源寄存器AH在乘除法指令中作累加器;在I/O指令中作数据寄存器;AX,AL用途寄存器第五章指令系统5.3寻址方式在8086的指令中给出一个8位或16位的常数作为操作数。该操作数被称为立即数,这种寻址方式称为立即寻址。例如:MOVAL,80H表示把常数80H送到累加器AL中。注意:立即寻址主要用于给寄存器赋初值,立即数只能作为源操作数。二、立即数寻址第五章指令系统5.3寻址方式立即数寻址操作数在指令所指定的寄存器中。这种寻址方式称为寄存器寻址。例如:MOVAX,BX表示把BX寄存器中的内容送到AX寄存器中。这种寻址常常在CPU内部传送数据,该指令操作时不访问主存。速度快。源地址和目标地址均可采用寄存器寻址。三、寄存器寻址第五章指令系统5.3寻址方式寄存器寻址四、存储器寻址第五章指令系统5.3寻址方式数据总是在存储器中,存储单元的有效地址EA由指令给出。这是访问主存中操作数的最简单的方式。例如:MOVAX,[2000H]若DS=3000H,则操作数的实际地址是32000H,取出其中内容送到AX。(若指令前无特殊说明,则隐含段为DS)1、直接寻址第五章指令系统5.3寻址方式直接寻址2、寄存器间接寻址操作数存储器中,存储单元的有效地址由指令指定的寄存器给出。这些寄存器规定为:BX,BP,SI,DI。即:EA=[BX]或[BP]或[SI]或[DI]例如:MOVAX,[BX]表示以BX寄存器的内容为主存地址,把这个地址中的数据送到AX。在指令的汇编格式中,作为间接寻址用的寄存器必须用[]括起来。(若寄存器为BX,SI,DI,则操作数在DS段,若寄存器为BP时,则操作数在SS段。)第五章指令系统5.3寻址方式寄存器间接寻址3、基址寻址操作数在存储器中,存储单元的有效地址由指令指定的一个基址寄存器的内容加上指令码中给出的位移量disp得到。位移量可以为8位,或16位数。即:[BP]8位位移量EA=+[BX]16位位移量例如:MOVAX,disp[BX]表示以BX为基址寄存器,把BX内容加上disp的值,其和作为操作数的有效地址,取出数据送到AX。若寄存器为BX,则段寄存器为DS,若寄存器为BP,则对应的段寄存器为SS。第五章指令系统5.3寻址方式4、变址寻址把上述基址寻址中的基址寄存器BX,BP换成SI,DI,则称为变址寻址。[SI]8位位移量EA=+[DI]16位位移量例如:MOVAX,disp[SI]表示把变址寄存器SI中的内容加上disp的值,其和作为操作数的地址,取出数据送到AX。基址寻址,变址寻址经常用于对数组元素进行操作。第五章指令系统5.3寻址方式寄存器相对寻址如果指令中包含基址寻址也包含变址寻址,把BX,BP和SI,DI组合起来。例如:MOVAX,[BX][SI]表示把基址寄存器BX的内容加上变址寄存器SI的内容和作为操作数的地址,取出数据送到AX。5、基址变址寻址第五章指令系统5.3寻址方式基址变址寻址6、相对基址变址寻址如果指令中包含基址寻址也包含变址寻址,把BX,BP和SI,DI组合起来。再加上8位或16位的偏移量。例如:MOVAX,disp[BX][SI]表示把基址寄存器BX的内容加上变址寄存器SI的内容以及disp的值,其和作为操作数的地址,取出数据送到AX。第五章指令系统5.3寻址方式相对基址变址寻址例题:一种两地址(寄存器与存储器)RS型指令的结构如下所示,其中I为间接寻址标志位,X为寻址模式字段,D位偏移量字段。通过I,X,D的组合,可构成下表所示的寻址方式。可写出六种寻址方式的名称。6位4位1位2位16位寻址方式表偏移量DXI通用寄存器---OPR2为变址寄存器R3为通用寄存器R1为基址寄存器E=DE=(PC)±DE=(R2)±DE=(R3)E=(D)E=(R1)±D0001101100110(1)(2)(3)(4)(5)(6)说明有效地址E算法XI寻址方式00011解:1,直接寻址  2,相对寻址  3,变址寻址  4,寄存器间接寻址  5,存储器间接寻址  6,基址寻址 5.5指令的类型一个指令系统常有几十、几百条指令(Intel8086具有133条指令),但按功能可以划分为如下几大类:1、数据传送指令用以实现寄存器与寄存器之间(MOVAX,BX)、寄存器与内存单元之间(MOV[0001H],AX)以及内存单元相互之间的数据传送。数据能够被从源地址传送到目的地址,而源地址中数据不变,——拷贝。包括:立即数送寄存器(MOVAX,1)、将数据送到不同字长的寄存器中(MOVAL,78H、MOVAX,A0A0HMOVEAX,12345678H)以及寄存器组数据交换等操作指令。2、算术与逻辑运算指令算术运算指令:一般包括定点、浮点的加、减、乘、除运算。指令运算影响六个状态标志:CF,AF,SF,ZF,PF和OF。ADD,ADC,SUB,SBB,INC,DEC,DIV,MUL,IDIV,IMUL逻辑运算:一般包括逻辑与,逻辑或,逻辑非,逻辑异或等运算,是以二进制为单位按位进行运算。OR,AND,XOR,NOT标志寄存器FR0123456789101112131415CFXPFXAFXZFSFTFIFDFOFXXXX(1)、 状态标志位CF:进位标志PF:奇偶标志AF:半进位标志或辅助进位标志ZF:全零标志OF:溢出标志SF:符号标志(2)、 控制标志位IF:允许中断位TF:单步标志或陷阱标志位DF:地址增量标志位ADD目标操作数,源操作数源操作数+目标操作数——>目标操作数ADC目标操作数,源操作数(双字操作)源操作数+目标操作数+CF——>目标操作数影响A,C,O,P,S,Z6个标志位INC目标操作数(增量指令)目标操作数+1——>目标操作数影响A,O,P,S,Z5个标志位加法指令SUB目标操作数,源操作数目标操作数-源操作数——>目标操作数SBB目标操作数,源操作数(双字操作)目标操作数-源操作数-CF——>目标操作数DEC目标操作数(减量指令)目标操作数-1——>目标操作数NEG目标操作数(求补指令)0-目标操作数——>目标操作数影响A,C,O,P,S,Z6个标志位减法指令MUL乘数:无符号乘法IMUL乘数:有符号乘法DIV除数:无符号除法IDIV除数:有符号除法乘法指令除法指令逻辑与:ANDd,s例:ANDBX,0F0FH若(BX)=5555H,操作后(BX)=0505H。逻辑或:ORd,s异或指令:XORd,s逻辑非:NOTd例:MOVAL,00000000BNOTAL执行结果是:AL=11111111B逻辑与:将操作数的某一位置0,其余位保持。逻辑或:将操作数的某一位置1,其余位保持。逻辑异或:将操作数的部分位取反,部分位保持。逻辑运算指令应用3、移位指令算术移位:左移时空位补0而符号位进标志位,右移时空位复制符号位而溢出位进标志位。逻辑移位:整体移位,空位补0,溢出进标志位。循环移位:有不带进位循环和带进位循环。前者循环后的溢出位进标志位,后者与标志位一起循环。4、比较指令比较指令:CMPAX,BX作用:根据参加比较的两个数相减后的结果,区分大于等于小于等情况对标志位进行置位操作。比较指令只影响标志位,而不影响参加比较的操作数。5、转移指令作用:根据逻辑判断结果,改变程序的执行顺序。无条件转移指令强迫CPU运行程序地址转移至新地址开始执行程序。有条件转移指令根据当前运算的结果进行逻辑判断,符合判断条件则转移到指令表明的新地址处执行程序,否则继续按原顺序执行原来的程序。根据实际需要,有条件转移指令分为许多种类,其中包括单一条件转移指令、复合条件转移指令、适用于无符号数的条件转移指令、适用于有符号数的条件转移指令以及某些特殊的条件转移指令等等。6、调用指令和返回指令调用指令实现从一个程序转去执行子程序的操作;返回指令则使CPU结束执行子程序而返回执行原程序。7、输入、输出指令完成在中央处理器和外设之间进行数据交换。输入指令使数据由外设传送到处理机。输出指令使数据由处理机传送到外设。CALLSUB1.........CALLSUB2…...CALLSUB2…RETURNRETURN......主程序地址200021002101子程序SUB1240025002501256025612700主存空间分配程序执行流程子程序SUB28、堆栈及堆栈操作指令堆栈(stack}是由若干个连续存储单元组成的先进后出(firstinlastout,简称FILO)存储区,也称为软堆栈。其工作原理是第一个送入堆栈中的数据存放在栈底,最后送入堆栈中的数据存放在栈顶。栈底是固定不变的,而栈顶却是随着数据的入栈和出栈在不断变化。为了表示栈顶的位置,有一个寄存器或存储器单元用于指出栈顶的地址,这个寄存器或存储器单元就称为堆栈指针(stackpointer简称SP),任何堆栈操作只能在栈顶进行.。在一般计算机中堆栈主要用来暂存中断和子程序调用时现场数据及返回地址,用于访问堆栈的指令只有压入(即进栈)和弹出(即退栈)两种,它们实际上是一种特殊的数据传送指令。压入指令(PUSH)是把指定的操作数送入堆栈的栈顶,而弹出指令(POP)的操作刚好相反,是把栈顶的数据取出,送到指令所指定的目的地。在一般的计算机中,堆栈从高地址向低地址扩展,即栈底的地址总是大于或等于栈顶的地址(也有少数计算机刚好相反)。当执行压入操作时,首先把堆栈指针(SP)减量(减量的多少取决于压入数据的字节数,若压入一个字节,则减1;若压入两个字节,则减2,以此类推),然后把数据送入SP所指定的单元。当执行弹出操作时,首先把SP所指定的单元(即栈顶)的数据取出,然后根据数据的大小(即所占的字节数)对SP增量。例如:压入指令PUSHOPR把OPR(长度为两个字节)压入堆栈,其操作是(SP)-2→SPOPR→(Sp)例如:弹出指令POPOPR弹出一个数据(长度为两个字节)送OPR。其操作是:((SP))→OPR(SP)十2→SP。其中,(SP)表示堆栈指针的内容;((SP))表示SP所指的栈顶的内容。硬堆栈是由寄存器组成,其特点是速度快但容量小。只有个别机器上采用。MOVAX,1234HPUSHAX表示把AX的内容1234H压入堆栈。分析执行过程。POPBX执行结果是把1234H送BX中。分析执行过程。例:PUSHF:先进行SP减2,再把标志寄存器的内容送SP所指向的栈顶字,标志本身不受影响。POPF指令:把SP指向栈顶单元的字送16位的标志寄存器,取代原来的值。功能:修改标志位;保护和恢复主程序标志。标志位传送指令9、字符串处理指令用于各种文字编辑与排版处理包括:字符串的传送、比较、查找、匹配以及字符串的抽取和字符串的替换等操作指令。10、其它特殊指令专用指令用来完成特殊的专门操作。如:暂停、等待、空操作、位操作、以及开中断、关中断等等。特权指令分配和管理系统资源,防止非法用户对系统资源及其他用户程序的修改、打印以及删除等。需要说明的是:计算机种类不同其指令系统包括数量与功能亦有所不同,用其编程时务必参照相应的指令系统手册。5.6指令系统的兼容性计算机的操作过程:加电开外设开主机产生RESET信号执行程序停主机停外设停电计算机工作过程本身就是根据存储执行原理,按一定顺序自动执行程序指令。指令执行五阶段:取指译码取操作数操作结果处理采用不同指令系统编写的程序不能相互使用,同一系列兼容机采用具有向前兼容的特点。系列机的指令系统只能扩充而不能减少,使其指令系统越来越复杂。这样就会使计算机的研制周期变长,增加了研制时间、成本以及调试和维护的难度,还会降低系统的性能(即难以实现流水线操作降低了机器的运行速度)。如开发80386微处理器用了三年多的时间,投资一亿五千万美元。5.7精简指令系统计算机(RISC)简介1、RISC由来计算机的不断升级扩充,同时又兼容过去产品使指令系统日趋复杂,形成了“复杂指令系统计算机(CISC)”。如VAXII/780由303条指令,18种寻址方式。Pentium机有191条,9种寻址方式。复杂指令系统增加硬件复杂性,降低机器运行速度。经实际分析发现:1、各种指令使用频率相差悬殊。80%指令使用很少。2、指令系统的复杂性带来系统结构的复杂性,增加了设计时间和售价,也增加了VLSI设计负担,不利于微机向高档机器发展。3、复杂指令操作复杂、运行速度慢。由此提出“精简指令系统计算机(RISC)”的概念。RISC不是简单地简化指令系统,而是通过简化指令使计算机的结构更加简单合理,从而提高运算速度。1、仅选使用频率高的一些简单指令和很有用但不复杂指令,指令条数少。2、指令长度固定,指令格式少,寻址方式少。3、只有取数/存数指令访问存储器,其余指令都在寄存器中进行,即限制内存访问。4、CPU中通用寄存器数量相当多;大部分指令都在一个机器周期内完成。5、以硬布线逻辑为主,不用或少用微程序控制。6、特别重视编译工作,以简单有效的方式支持高级语言,减少程序执行时间。2、RISC的特点5.8Pentium微处理器指令系统简介Pentium处理器包括4个32位数据寄存器EAX,EBX,ECX和EDX、其低16位称为AX,BX,CX和DX,低16位还可分为两个8位例如AX的低8位为AL,高8位为AH。寄存器名字中的E表示扩展,所以EAX表示将16位AX扩充到32位。还有5个32位寄存器可用作指针或变址寄存器,它们是堆栈指针ESP基指针EBP,源变址寄存器ESI,目的变址寄存器EDI,指令指针EIP(即程序计数器PC)。EAX,EBX,ECX,EDX,EBP,ESI和EDI可用作通用寄存器、AX,BX,CX,DX,BP。SI和DI可被程序员作为多种用途而应用于实模式,但也可被指定为专用。例如,AX用于乘法和除法操作中或者在指令中用于访问I/O端口;CX在循环操作中作为指针,CX的低8位CL寄存器还可作为移位操作的计数器;DX用于乘法和除法操作,还可作为访问I/O的指针;SI和DI在字符串操作中作为指针。Pentium拥有6个段寄存器,它用于控制访问主存和外设I/O端口。程序段寄存器CS用于取指令,数据段寄存器DS常被默认用于读/写数据,堆栈段寄存器SS用于堆栈操作,扩展段寄存器ES用于程序员希望的任何事情。附加的两个段寄存器FS和GS是从80386开始增加的,可供程序员任意使用、所有段寄存器都为16位。设CS的内容为A000H,指令指针IP(即PC)的内容为5F00H,在实模式情况下形成访存地址的过程如下:将CS的内容左移4位(二进制数)即把A000H改变成A0000H然后与IP的内容相加得A5F00H,并以此新值写入IP中,此即为下一条指令的地址。在32位保护模式,段寄存器用作选择器指出预定义的段描述符,段描述符中包含有寻址和控制信息,用以产生32位地址。Pentium的指令长度变化(即可变长度)很大(1字节~10余字节)今将其指令格式介绍如下:指令包括以下字段:(l)OP(操作码)每条指令都有操作码,某些指令在操作码中还包含有操作数长度W(8位,16位或32位)或立即数是否需扩充符号位(S)等信息。(2)MOD/RM本字节与下一字节联合一起提供寻址信息.MOD/RM字节可指出操作数是存储在寄存器中还是在存储在存储器中。该字节分成3个字段:Mod字段(2位)与R/M字节(3位)可以产生32个数值,分别表示8个寄存器和24种变址方法;Reg/op字段(3位)可以是寄存器号,或者作为3位附加的操作码;R/M字段(3位)可以是1个操作数所在的寄存器或者与Mod字段一起指出寻址方式。(3)SIB当MOD/RM为某些值时,需要SIB参与决定寻址方式。SIB字节分成3个字段;SS字段(2位)指出变址寄存器的放大因子;Index字段(3位)指出变址寄存器;Base字段(3位)指出基寄存器。(4)disp当寻址方式指示用到disp(位移量)时,则存在8位,16位或32位的位移量字段。(5)lmm当寻址方式指示使用立即数时,存在8位,16位或32位立即数。字节1或20或10或10,1,2或40,1,2或4OPMOD/RM7654321076543210ModReg/OpR/MSSIndexBaseSIBDidpImmPentium有9种寻址方式:1、立即2、寄存器3、直接E=Disp4、基址E=(B)B基址寄存器5、基址+偏移量E=(B)+Disp6、比例变址+偏移量E=(I)*S+DispI为变址寄存器,S为比例因子(1、2、4、8)7、基址+变址+偏移E=(B)+(I)+Disp8、基址+比例变址+偏移E=(B)+(I)*S+Disp9、相对指令地址=(PC)+Disp举例:MOVEAX,[EBX][ECX×4十6]↑↑↑↖基变址放大因子位移量上例中假设EBX为基寄存器,ECX为变址寄存器,放大因子为4,位移量为6。放大因子在处理数组时(该数组中的数据可以是字节、字、双字或4字)特别有用。寄存器与其编码之间的关系,如表5.4所示。图5.13说明在实模式下32位地址的形成过程。段寄存器CSDSESFSGSSS基寄存器EAXEBXECXEDXEBPESIEDIESP变址寄存器EAXEBXECXEDXEBPESIEDI放大因子1248位移量(DISP)08位16位有效地址5.9IBM大型机指令系统简介IBM360是32位机器,按字节寻址,支持的数据类型有:字节、半宇、字、双字(双精度实数)、装配的十进制数(一个字节放两个BCD码)和未经装配(拆卸)的字符串(一字节存放一字符)。机内有16个32位通用寄存器,4个双精度(64位)浮点寄存器。IBM36O/370有五种指令格式。1、R-R型寄存器-寄存器格式2、R-X型寄存器-变址寄存器3、R-S型寄存器-存储器4、S-I型存储器-立即数5、S-S型存储器-存储器
本文档为【计算机组成原理-第5章 指令系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
老张师傅
20余年电工实际工作经验,目前在国企担任电工工程师
格式:ppt
大小:956KB
软件:PowerPoint
页数:71
分类:
上传时间:2023-04-09
浏览量:1