第5章指令系统_第1页
第5章指令系统_第2页
第5章指令系统_第3页
第5章指令系统_第4页
第5章指令系统_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CS&T Information CourseBeyond Technology计算机组成原理计算机组成原理大连东软信息学院精品课程大连东软信息学院精品课程CS&T Information Course第第5章章 指令系统指令系统CS&T Information Course本章线索本章线索CS&T Information Course5.1指令系统基本概念指令系统基本概念CS&T Information Course5.2指令的格式指令的格式指令的字长指令的字长操作码(OP)地址码(A)操作码(OP)操作数(A)CS&T Information Course6一、指令操作码与地址码 指令是由

2、操作码和地址码两部分组成的:操作码字段(OP)地址码字段(A)v 操作码:操作码:用来指明该指令所要完成的操作,如加法、用来指明该指令所要完成的操作,如加法、减法、传送、移位、转移等等。减法、传送、移位、转移等等。 位数反映了机器的操作种类,也即机器允许的指位数反映了机器的操作种类,也即机器允许的指令条数,如果操作码有令条数,如果操作码有n n位二进制数位二进制数, ,则最多可表则最多可表示示2 2n n种指令。种指令。v 地址码:地址码:用来寻找运算所需要的操作数(源操作数用来寻找运算所需要的操作数(源操作数和目的操作数)。和目的操作数)。 地址码包括:源操作数地址、目的操作数地址和地址码包

3、括:源操作数地址、目的操作数地址和下一条指令的地址。下一条指令的地址。 地址含义:主存的地址、寄存器地址或者地址含义:主存的地址、寄存器地址或者I/OI/O设设备地址。备地址。 CS&T Information Course71、操作码 操作码长度固定:将操作码集中放在指令字的一个字段内。 这种格式便于硬件设计,指令译码时间短,广泛应用于字这种格式便于硬件设计,指令译码时间短,广泛应用于字长较长的、大中型计算机和超级小型计算机以及长较长的、大中型计算机和超级小型计算机以及RISC(Reduced Instruction Set Computer)中。如)中。如IBM370和和VAX-11系列机

4、,操作码长度均为系列机,操作码长度均为8位。位。 操作码长度不固定:指令操作码分散在指令字的不同字段中。 这种格式可有效地压缩操作码的平均长度,在字长较短的这种格式可有效地压缩操作码的平均长度,在字长较短的微机中被广泛采用。如微机中被广泛采用。如PDP-11,Intel8086/80386等。等。CS&T Information Course82、地址码(1)三地址指令:)三地址指令: (A1)OP(A2)A3OPA1A2A3(2 2)二地址指令:)二地址指令: (A1A1)OPOP(A2A2)A1A1 A1A1:目的操作数:目的操作数 A2A2:源操作数:源操作数(3 3)单地址指令:)单地

5、址指令: (ACCACC)OPOP(A A)ACCACC OPOP(A A)A A 单目操作:如单目操作:如NEGNEG、INCINC等指令等指令OPA1A2OPAa amov ax,2000mov ax,2000r rCS&T Information Course92、按照地址码分类(4)零地址指令 不涉及操作数:如不涉及操作数:如NOP、HLT指指令令 操作数隐含:如操作数隐含:如PUSH、POP指令指令对于寄存器类型的操作数,地址A指寄存器编号。OPCS&T Information Course5.2指令的格式指令的格式指令的地址码指令的地址码 三地址指令 (A1)OP(A2)(A3)

6、二地址指令 (A1)OP(A2) (A1)或(A2) 单地址指令 双操作数指令,但约定一个操作数固定在累加器(AC)中, (AC)OP(A)(AC) 单操作数指令,则地址A中的内容即为进行操作的操作数, OP(A)(A) 零地址指令 单操作数指令,但该操作数隐含存放在某约定地址中 控制类指令,主要用于完成某种控制功能OPA1A2A3OPA1A2OPAOPCS&T Information Course113、操作数类型按照指令处理的操作数存放位置分:按照指令处理的操作数存放位置分: 存储器类型:存储器类型:操作数存放在主存中,操作数存放在主存中,A为其地址信息为其地址信息 寄存器类型:寄存器类型

7、:操作数存放在操作数存放在CPU的通用寄存器中,的通用寄存器中,A为寄存器为寄存器号号 立即数类型:立即数类型:操作数存放在指令(地址字段)中操作数存放在指令(地址字段)中按照指令处理的操作数性质分:按照指令处理的操作数性质分: 地址(地址(addresses):):存储器地址,是无符号整数。存储器地址,是无符号整数。 数字(数字(numbers):整数、浮点数、十进制数。):整数、浮点数、十进制数。 字符(字符(characters) 逻辑数据:真假两种状态逻辑数据:真假两种状态CS&T Information Course5.2指令的格式指令的格式指令的操作码指令的操作码CS&T Info

8、rmation Course131、指令字长度、指令字长度 机器指令是用二进制机器字来表示的,表示一条指令的机器字,就称为指令字。一条指令中所包含的二进制码的位数,称为指令字长度或指令字长。它主要取决于操作码的长度、操作数地址的长度和操作数地址的个数。不同机器的指令字长是不相同的。 按指令长度固定与否可以分为: 固定指令字长的指令:所有指令的字长均相等,一般等于机固定指令字长的指令:所有指令的字长均相等,一般等于机器字长。器字长。 可变指令字长的指令:指令字长不固定,可变指令字长的指令:指令字长不固定,通常取字节的整数通常取字节的整数倍。倍。CS&T Information Course141

9、、指令字长度、指令字长度 按照指令字长与机器字长的关系分类: 短格式指令:指令字长小于或等于机器字长。短格式指令:指令字长小于或等于机器字长。 长格式指令:指令字长大于机器字长。长格式指令:指令字长大于机器字长。 一个机器的指令系统中,一个机器的指令系统中,短格式指令和长格式指令可以并存短格式指令和长格式指令可以并存,通常将最常用的指令设计成短格式指令,可以节省存储空间、通常将最常用的指令设计成短格式指令,可以节省存储空间、提高指令的执行速度。提高指令的执行速度。CS&T Information Course152、指令操作码扩展、指令操作码扩展 固定操作码长度的格式和可变操作码长度格式 在设

10、计操作码不固定的指令系统时,应安排指令使用频度高的指令占用短的操作码,对使用频度低的指令可占用较长的操作码,这样可以缩短经常使用的指令的译码时间。 采用扩展操作码技术,使操作码的长度随地址数的减少而增加,即不同地址数的指令可以具有不同长度的操作码,从而可以有效地缩短指令字长。指令操作码扩展技术是一种重要的指令优化技术,它可以缩短指令的平均长度,增加指令字所能表示的操作信息。但指令操作码扩展技术需要更多的硬件支持,它的指令译码更加复杂,使控制器设计难度增大。 CS&T Information Course16举例举例OPA1A2A300000001:1110A1A1:A1A2A2:A2A3A3:

11、A34 4位操作码位操作码,15,15条三地址指令条三地址指令11111111:111100000001:1110A2A2:A2A3A3:A38 8位操作码位操作码,15,15条二地址指令条二地址指令 11111111:111111111111:111100000001:1110A3A3:A31212位操作码位操作码,15,15条一地址指令条一地址指令11111111:111111111111:111111111111:111100000001:11111616位操作码位操作码 CS&T Information Course扩展操作码扩展操作码 根据不同的指令系统,扩展操作码的组合方案种类很多

12、,还有一种较常见的扩展操作码的实现方式,编码原则如下:操作码字段的位数既不是固定的,又不是任意的,而是有限的几种码长。使用频率(是指在程序中出现的概率)高的指令操作码字段短,使用频率低的操作码字段长,从而使操作码字段的平均长度缩短。但要注意:各条指令的操作码必须是唯一的,且各类指令的格式安排应该规整统一。CS&T Information Course 如有15条指令,使用频率是80% 还有15条指令,使用频率是20% 如何设计?4位 用来表示使用频率是80%的15条指令再扩展,用8位表示使用频率是20%的15条指令则,指令的平均长度=4*0.8+8*0.2=3.2+1.6=4.8CS&T In

13、formation Course5.3 Intel8086CPU寄存器的结构及对存储器寄存器的结构及对存储器的管理的管理8086CPU中的寄存器组中的寄存器组CS&T Information Course5.3 Intel8086CPU寄存器的结构及对存储器寄存器的结构及对存储器的管理的管理8086CPU中的寄存器组中的寄存器组 数据寄存器 包括AX、BX、CX、DX四个16位的寄存器,还可分为两个独立的8位寄存器使用,命名为AL、AH、BL、BH、CL、CH、DL和DH。 四个数据寄存器的特殊用途 AX:累加器,输入输出端口 BX:基址寄存器。 CX:计数器。 DX:双字长高16位数据,I/

14、O的端口地址。CS&T Information Course5.3 Intel8086CPU寄存器的结构及对存储器寄存器的结构及对存储器的管理的管理8086CPU中的寄存器组中的寄存器组 指针及变址寄存器 包括SP、BP、SI、DI四个16位寄存器 SP:堆栈指针寄存器 BP:基址指针寄存器 SI:源变址寄存器 DI:目的变址寄存器CS&T Information Course5.3 Intel8086CPU寄存器的结构及对存储器寄存器的结构及对存储器的管理的管理8086CPU中的寄存器组中的寄存器组 控制寄存器 包括IP和PSW(FLAGS)两个16位寄存器。 IP:指令指针寄存器 PSW(

15、FLAGS):条件标志寄存器 状态标志位:CF、PF、AF、ZF、SF、OF 控制标志位:TF、IF、DF15 14 13 12 11 109876543210OFOF DFDF IFIF TFTF SFSF ZFZFAFAFPFPFCFCFCS&T Information Course状态标志位:CF、PF、AF、ZF、SF、OF进位标志CF,记录16位或多字加减运算时最高有效位产生的进位或者借位值。奇偶标志PF,用来为计算机中传送信息时可能产生的代码出错情况提供检验条件。当结果操作数低8位中1的个数为偶数时置1,否则置0。辅助进位标志AF,记录运算时第3位(半个字节)向第4位产生的进位或借

16、位值。零标志ZF,运算结果为0时ZF位置1,否则置0。符号标志SF,记录运算结果的符号。结果为负时置1,否则置0。溢出标志OF,在运算过程中,如操作数超出了计算机可表示数的范围称为溢出。溢出时OF位置1,否则置0。CS&T Information Course控制标志位有控制标志位有3位位 陷阱标志TF,用于调试时的单步方式操作。当TF=1时,每条指令执行完后产生陷阱,由系统控制计算机;当TF=0时,CPU正常工作,不产生陷阱。 中断标志IF,用于控制可屏蔽硬件中断。当IF=1时,允许8086微处理器响应可屏蔽中断请求,否则不允许响应可屏蔽中断。 方向标志DF,在串处理指令中控制处理信息的方向

17、。当DF=1时,串处理从高地址向低地址方向处理。当DF=0时,串处理就从低地址向高地址方向处理。CS&T Information Course5.3 Intel8086CPU寄存器的结构及对存储器寄存器的结构及对存储器的管理的管理8086CPU中的寄存器组中的寄存器组 段寄存器 包括4个16位的段寄存器 代码段寄存器CS:存放当前执行的程序的段地址。 数据段寄存器DS:存放当前执行的程序所用操作数的段地址。 堆栈段寄存器SS:存放当前执行的程序所用堆栈的段地址。 附加段寄存器ES:存放当前执行程序中一个辅助数据段的段地址。CS&T Information Course存储器地址分段存储器地址分

18、段 存储器地址分段的具体做法是:把1MB的存储器空间分成若干逻辑段,每一个逻辑段被看成是存储器的一个逻辑单元,其最大容量为64KB,在段内地址是连续的,这样段内地址就可以用16位来表示。实际上,可以根据编程的需要来确定段的大小,它可以是64K字节范围内的任意多个字节。存储器采用分段管理后,每个段的首地址(称为段基地址或段地址)保存在8086内部的CS、DS、SS和ES四个16位的寄存器中。CS&T Information Course8086存储器结构存储器结构程序在内存中的逻辑抽象程序在内存中的逻辑抽象80868086存储器结构存储器结构CS&T Information Course5.3

19、Intel8086CPU寄存器的结构及对存储器寄存器的结构及对存储器的管理的管理内存的组织内存的组织CS&T Information Course5.3 Intel8086CPU寄存器的结构及对存储器寄存器的结构及对存储器的管理的管理内存的组织内存的组织CS&T Information Course5.3 Intel8086CPU寄存器的结构及对存储器寄存器的结构及对存储器的管理的管理内存的组织内存的组织 物理地址的计算:PA=段地址24EA 段寄存器与对应存放偏移地址的默认组合 CS IP SS SP或BP DS BX、DI、SI ES DI(用于串指令)CS&T Information C

20、ourse内容回顾内容回顾 1、指令通常包括哪两方面信息 2、8086CPU中的数据寄存器包括那些?它们的特殊用途? 3、SP、BP、SI、DI分别是什么寄存器? 4、条件标志寄存器中CF、PF、AF、ZF、SF、OF的含义? 5、8086 寻址一个物理单元时,如何形成 20位物理地址?CS&T Information Course5.4指令寻址指令寻址 操作数地址的三种方式 操作数在指令中直接给出 立即数寻址 操作数存放在CPU内部的通用寄存器中寄存器寻址 操作数存放在主存储器中存储器寻址 例: MOV DST, SRC(目的操作数DST,源操作数SRC)CS&T Information C

21、ourse5.4指令寻址指令寻址立即数寻址立即数寻址 在8086的指令中给出一个8位或16位的常数作为操作数。该操作数被称为立即数,这种寻址方式称为立即寻址。 例如:MOV AL,80H;表示把常数80H送到累加器AL中。 注意:立即寻址主要用于给寄存器赋初值,立即数只能作为源操作数。CS&T Information Course5.4指令寻址指令寻址寄存器寻址寄存器寻址 操作数在指令所指定的寄存器中。这种寻址方式称为寄存器寻址。 例如:MOV AX,BX;表示把BX寄存器中的内容送到AX寄存器中。 这种寻址常常在CPU内部传送数据,该指令操作时不访问主存,速度快。源地址和目标地址均可采用寄存

22、器寻址。CS&T Information Course5.4指令寻址指令寻址直接寻址直接寻址 数据总是在存储器中,存储单元的有效地址EA由指令给出。 例如:MOV AX, 2000H;若DS3000H,则操作数的实际地址是32000H,取出其中内容送到AX。(若指令前无特殊说明,则隐含段为DS) 这是访问主存中操作数的最简单的方式。CS&T Information Course5.4指令寻址指令寻址寄存器间接寻址寄存器间接寻址 操作数在存储器中,存储单元的有效地址由指令指定的寄存器给出,这些寄存器规定为:BX,BP,SI,DI,即:EABX或BP或SI或DI。 例:MOV AX, BX;表示以

23、BX寄存器的内容为主存地址,把这个地址中的数据送到AX。 在指令的汇编格式中,作为间接寻址用的寄存器必须用括起来。(若寄存器为BX,SI,DI,则操作数在DS段,若寄存器为BP时,则操作数在SS段。)CS&T Information Course5.4指令寻址指令寻址寄存器相对寻址寄存器相对寻址 通过基址寄存器BX、BP或变址寄存器SI、DI与一个位移量相加形成有效地址。CS&T Information Course5.4指令寻址指令寻址寄存器相对寻址寄存器相对寻址 例:MOV AX ,dispBX;表示以BX为基址寄存器,把BX内容加上disp的值,其和作为操作数的有效地址,取出数据送到AX

24、。 例:MOV AX ,dispSI;表示把变址寄存器SI中的内容加上disp的值, 其和作为操作数的地址,取出数据送到AX。 若寄存器为BX,则段寄存器为DS,若寄存器为BP,则对应的段寄存器为SS。 寄存器相对寻址方式经常用于对数组元素进行操作。CS&T Information Course5.4指令寻址指令寻址基址变址寻址基址变址寻址 如果指令中包含基址寻址也包含变址寻址,把BX、BP和SI、DI组合起来。 例:MOV AX, BX SI;表示把基址寄存器BX的内容加上变址寄存器SI的内容和作为操作数的地址,取出数据送到AX。 CS&T Information Course5.4指令寻址

25、指令寻址相对基址变址寻址相对基址变址寻址* 如果指令中包含基址寻址也包含变址寻址,把BX、BP和SI、DI组合起来,再加上8位或16位的偏移量。 例:MOV AX,dispBX SI;表示把基址寄存器BX的内容加上变址寄存器SI的内容以及disp的值, 其和作为操作数的地址,取出数据送到AX。 CS&T Information Course5.4指令寻址指令寻址隐含寻址隐含寻址* 操作数隐含在CPU的某个通用寄存器或内存的某指定单元中,指令中不直接给出操作数或操作数地址。 例:MUL OPR;MUL是操作码,表示乘法,OPR为乘数,而被乘数则隐含在累加器AX(16位乘法)或AL(8位乘法)中。

26、 隐含寻址可以缩短指令的长度。 CS&T Information Course42堆栈寻址 ( Stack Addressing )* 操作数位于存储器中,操作数所在的存储器地址EA由堆栈指针寄存器SP隐含指出,通常用于堆栈指令。 堆栈是由若干个连续主存单元组成的先进后出(first in last out,即FILO)存储区,第一个放入堆栈的数据存放在栈底,最近放入的数据存放在栈顶。栈底是固定不变的,而栈顶是随着数据的入栈和出栈在时刻变化。栈顶的地址由堆栈指针SP指明。 一般计算机中,堆栈从高地址向低地址扩展,即栈底的地址总是大于或等于栈顶的地址,称为上推堆栈;也有少数计算机相反,称为下推堆

27、栈。 堆栈寻址主要用来暂存中断和子程序调用时现场数据及返回地址。 CS&T Information Course43存储器存储器堆栈段堆栈段栈底栈底SPSP栈栈顶顶堆栈的结构 堆栈的操作:压入(PUSH)和弹出(POP),对应PUSH和POP指令,假设数据字长为1B压入指令压入指令 PUSH Ri:将:将Ri寄存器内容压寄存器内容压入堆栈。其操作是:入堆栈。其操作是:(SP)1SP,(Ri) (SP)弹出指令弹出指令POP Ri:从堆栈中弹出:从堆栈中弹出1个数个数据送据送Ri寄存器,其操作是:寄存器,其操作是:(SP) Ri ,(SP)1SP其中其中(SP)表示堆栈指针表示堆栈指针SP的内容

28、;的内容;(SP)表示表示SP所指的栈顶的内容。所指的栈顶的内容。SP-1SP-1SPSP(Ri)SP+1SP+1CS&T Information Course练习练习 P162 第第5题题5设(BX)=1100H,(SI)=0002H,数据段中(1100H)=52H,(1101H)=8FH,(1162H)=6BH,(1163H)=99H,(1103H)=F6H,(2200H)=AAH,(2201H)=B6H,(2800H)=55H,(2801H)=77H,给出下列指令执行后AX寄存器的值。并回答下列指令的寻址方式(1)MOV AX, BX(2)MOV AX, BX(3)MOV AX, 420

29、0H(4)MOV AX, 2800H(5)MOV AX, 1100HBX(6)MOV AX, 1160HSICS&T Information Course练习练习 P163 第第8题题 主存数据分布如图若A为单元地址;(A)为A地址内的内容,试求 (8)-12+(2)+(6)-(4)= 。地址地址A012345678.N主存内容主存内容 10 8N6025053.7CS&T Information Course5.5指令系统的分类指令系统的分类数据传送类指令数据传送类指令 用于实现寄存器与寄存器之间,寄存器与存储器之间以及寄存器与I/O端口之间的字节或字的传送。 只是完成数据的传输,并不改变操

30、作数的内容。 不影响标志位的内容。 CS&T Information Course5.5指令系统的分类指令系统的分类数据传送类指令数据传送类指令 通用数据传送指令 传送指令 格式:MOV d , s ;将s指定的源操作数送入目标d。(s和d的类型要匹配) 注意:源操作数可以是寄存器,存储器或立即数,可以是8位或16位。目标操作数不允许为立即数,源和目的操作数不允许同为存储器地址。CS&T Information Course5.5指令系统的分类指令系统的分类数据传送类指令数据传送类指令 通用数据传送指令 传送指令 例 通用寄存器之间 MOV AL,BH(字节传送) MOV AX,BX (字传送

31、) 寄存器与存储单元之间 MOV AX,BX; BX和BX1所指的两个内存单元的内容送AX。 MOV DI,AX ;累加器的内容送DI和DI1所指的两个内存单元。 立即数传送到寄存器或存储器 MOV AL,40H (立即数40送AL) MOV DX,5040H (立即数5040送DX )CS&T Information Course5.5指令系统的分类指令系统的分类数据传送类指令数据传送类指令 通用数据传送指令 堆栈操作指令 入栈指令:PUSH s ;把源操作数压入堆栈。 出栈指令:POP d ; 把栈顶中栈顶相邻两单元的内容弹出到d。 数据入栈:SP先减2,然后把要入栈的内容送入SP所指向的

32、栈顶单元。 数据出栈:先弹出SP所指单元的内容,然后SP加2,指向新栈顶。CS&T Information Course5.5指令系统的分类指令系统的分类数据传送类指令数据传送类指令 通用数据传送指令 数据交换指令 查表指令 地址传送指令 有效地址送寄存器指令 指定寄存器与段寄存器DS置数指令 指定寄存器与段寄存器ES置数指令 标志寄存器传送指令 取PSW标志寄存器低8位送至AH指令 寄存器AH送状态标志寄存器低8位指令 状态标志寄存器压栈指令 状态标志寄存器弹栈指令 输入输出指令CS&T Information Course5.5指令系统的分类指令系统的分类算术运算类指令算术运算类指令 加法

33、指令 ADD 目标操作数,目标操作数, 源操作数源操作数;源操作数+目标操作数目标操作数 ADC 目标操作数,目标操作数, 源操作数源操作数;源操作数+目标操作数+CF 目标操作数 INC 目标操作数目标操作数(增量指令);目标操作数+1 目标操作数 减法指令 SUB 目标操作数,目标操作数, 源操作数源操作数;目标操作数-源操作数目标操作数 SBB 目标操作数,目标操作数, 源操作数源操作数;目标操作数-源操作数-CF 目标操作数 DEC 目标操作数目标操作数(减量指令);目标操作数-1 目标操作数 NEG 目标操作数目标操作数(求补指令); 0 -目标操作数目标操作数CS&T Inform

34、ation Course5.5指令系统的分类指令系统的分类算术运算类指令算术运算类指令 加法指令 MUL 乘数乘数;无符号数乘法 IMUL 乘数乘数;有符号数乘法 除法指令 DIV 除数除数;无符号数除法 IDIV 除数除数;有符号数除法 CBW;字节扩展指令 CWD;字扩展指令CS&T Information Course53逻辑左移、算术左移逻辑左移、算术左移 CF 0循环左移循环左移CF CF带进位循环左移带进位循环左移CF算术右移算术右移 0 CF逻辑右移逻辑右移CF循环右移循环右移CF带进位循环右移带进位循环右移CS&T Information Course5.5指令系统的分类指令系

35、统的分类逻辑运算与移位指令逻辑运算与移位指令 逻辑运算 逻辑与: AND d,s 例:AND BX ,0F0FH ;若(BX)=5555H,操作后(BX)=0505H 。 逻辑或:OR d,s 异或指令:XOR d,s 逻辑非:NOT d 例: MOV AL ,00000000B NOT AL; 执行结果是AL11111111B。 测试指令:TEST d,s;d&s置状态标志,不送结果。用来测试目的操作数中某位是否为“1”;执行过程与AND指令相同。CS&T Information Course5.5指令系统的分类指令系统的分类逻辑运算与移位指令逻辑运算与移位指令 逻辑运算 逻辑运算的特殊用法

36、 逻辑与:将操作数的某一位置0,其余位保持。 逻辑或:将操作数的某一位置1,其余位保持。 逻辑异或:将操作数的部分位取反,部分位保持。CS&T Information Course5.5指令系统的分类指令系统的分类逻辑运算与移位指令逻辑运算与移位指令 移位指令 逻辑左移指令: SHL DST,CNT 算术左移指令: SAL DST,CNT 逻辑右移指令: SHR DST,CNT 算术右移指令: SAR DST,CNT 循环左移指令: ROL DST,CNT 循环右移指令: ROR DST,CNT 带进位循环左移指令: RCL DST,CNT 带进位循环右移指令: RCR DST,CNTCS&T

37、 Information Course5.5指令系统的分类指令系统的分类串处理指令串处理指令* 串传送指令:MOVS DST,SRC 串比较指令:CMPS DST, SRC 串扫描指令: SCAS DST 串装入指令: LODS SRC 串存储指令: STOS DSTCS&T Information Course5.5指令系统的分类指令系统的分类控制转移类指令控制转移类指令 无条件转移指令:JMP DST 条件转移指令 JZ ;结果为0(或相等)则转移。 JNZ ;结果非0(或不相等)则转移。 JS; 结果为负则转移。 JNS; 结果为正则转移。 JO;溢出则转移。 JNO;不溢出则转移。 J

38、P;奇偶位为1则转移。 JNP; 奇偶位为0则转移。CS&T Information Course5.5指令系统的分类指令系统的分类控制转移类指令控制转移类指令 循环指令 LOOP DST;循环指令。 LOOPZ/LOOPE DST;当为0或相等时循环指令。 LOOPNZ/LOOPNE DST;当不为0或不相等时循环指令。 子程序指令 CALL DST ;调用指令。 RET; 返回指令。 中断指令 INT n; 中断。 INTO; 如溢出则中断。 IRET; 从中断返回。CS&T Information Course5.5指令系统的分类指令系统的分类处理器控制类指令处理器控制类指令 标志操作指

39、令 CLC;进位位置0指令。 CMC;进位位求反指令。 STC;进位位置为1指令。 CLD;方向标志置0指令。 STD;方向标志位置1指令。 CLI ;中断允许标志置0指令。 STI ;中断允许标志置1指令。 系统控制指令 NOP ;无操作指令。 HLT;停机指令。 WAIT;等待指令。 ESC;换码指令。 LOCK;总线锁定指令CS&T Information Course61一、指令系统的要求一、指令系统的要求1、完备性:指指令系统直接提供的指令足够使用,而不必用软件来实现。2、有效性:是指利用该指令系统所编写的程序能够高效地运行。程序占据存储空间小、执行速度快。3、规整性:对称性:所有的

40、指令都可使用各种寻址方式;对称性:所有的指令都可使用各种寻址方式;匀齐性:指令可以支持各种数据类型;匀齐性:指令可以支持各种数据类型;指令格式和数据格式的一致性:指令长度和数据长度有一定指令格式和数据格式的一致性:指令长度和数据长度有一定的关系,以方便处理和存取。的关系,以方便处理和存取。4、兼容性:“向上兼容”,即低档机上运行的软件可以在高档机上运行。 CS&T Information Course62二、指令系统的发展 “复杂指令系统计算机”,简称CISC(Complex Instruction Set Computer) 指令格式不固定,寻址方式丰富,功能复杂 一些比较简单的指令,在程序

41、中仅占指令系统中指令总数的20%,但出现的频率却占80%;占指令总数20%的最复杂的指令,却占用了控制存储器容量的80%,且使用频率却不高。CS&T Information Course63三、三、CISC的特点的特点早期CISC指令系统的主要特点是: 指令系统复杂。具体表现为指令条数多、寻址方式多、指令格式多。指令串行执行,大多数指令需要多个时钟周期完成。 采用微程序控制,因为微程序控制器适合于实现CISC指令执行过程的控制。 有较多的专用寄存器,大部分运算所需的数据均需访问存储器获取。1.编译程序难以用优化措施生成高效的目标代码程序。CS&T Information Course64三、三

42、、CISC的特点的特点CISC主要在以下方面来对增强指令的功能 面向目标程序增强指令功能面向目标程序增强指令功能具体方法有:提高运算类指令的功能提高传送类指令的功能增强程序控制指令功能 面向编译程序目标代码生成优化的改进面向编译程序目标代码生成优化的改进1.提供面向操作系统优化的指令提供面向操作系统优化的指令 CS&T Information Course5.6指令系统的发展指令系统的发展 RISC产生的背景 从CISC(Complex Instruction Set Computer) 到RISC(Reduced Instruction Set Computer) RISC的主要特点 指令系

43、统中只包含常用的少数指令,选用几种简单的寻址方式,有利于缩短指令的执行时间 采用固定的指令格式,尽可能缩短指令字长,一般采用等长指令,可优化编译过程CS&T Information Course66 大部分RISC机具有以下特点: (1) 指令系统设计时选择一些使用频率较高的简单指令,且选择一些很有用但不复杂的指令。 (2) 指令长度固定,指令格式种类少,寻址方式种类少。 (3) 只有取数/存数指令访问存储器,其余指令的操作都在寄存器之间进行。四、RISC的特点CS&T Information Course67 (4) 采用流水线技术。超级标量及超级流水线技术,增加了指令执行的并行度,使得一条

44、指令的平均指令执行时间小于一个机器周期。 (5) CPU中通用寄存器数量相当多,可以减少访存次数。 (6) 以硬布线控制逻辑为主,不用或少用微码控制。 (7) 采用优化的编译程序,力求有效地支持高级语言程序。 四、RISC的特点CS&T Information Course习题习题 带借位加法指令: 编程实现0000ffff+00010001 结果放在ax和bx中CS&T Information Course带借位减法指令:带借位减法指令: 编程实现00030325-00011324 结果放在ax和bx中CS&T Information Course乘法指令乘法指令 求1200H*3的结果CS

45、&T Information Course逻辑运算指令逻辑运算指令逻辑左移指令逻辑左移指令 mov ax,008f shl al,1 将会产生什么结果? 对标志位有何影响?在哪里可以观察到?CS&T Information Course控制转移指令控制转移指令 编程将DS:2000H开始的5个字节内存内容(依次赋初值为01H、02H、03H、04H、05H)相加,并把相加的结果存放在DS:2005H内存单元中。CS&T Information CourseMOV CX,5 (把5送入CX寄存器中)MOV AL,0 (把0送入AL寄存器中)MOV BX,2000H (把2000H送入BX寄存器中)LABEL:ADD AL,BX (DS:2000H开始的5个字节内存内容(依次赋初值为01H、02H、03H、04H、05H)相加,并把相加的结果存放在AL中)INC BX (BX中存放的地址值进行自增)LOOP LABEL (进行循环)MOV BX,AL (把AL中的值送到BX寄存器所指的存储单元中)CS&T I

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论