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

下载本文档

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

文档简介

1、第七章 指令系统张向东计算机科学与技术系7.1 7.1 指令概述指令概述 用计算机解题时,一般都要编制程序用计算机解题时,一般都要编制程序,程序既可用高级语言程序既可用高级语言编编写,亦可用机器语言写,亦可用机器语言编编写写; 但计算机但计算机只只能够识别和执行用能够识别和执行用机器语言机器语言编写的程序;编写的程序; 各种高级语言编写的应用程序,最终都要翻译成机器语言来各种高级语言编写的应用程序,最终都要翻译成机器语言来执行执行。 机器语言是由一系列的指令(语句)组成的机器语言是由一系列的指令(语句)组成的; 指令的格式就是机器语言的语法指令的格式就是机器语言的语法; 每条指令每条指令规定机

2、器完成一定的功能规定机器完成一定的功能。 一台计算机的所有的一台计算机的所有的指令集合称为该机的指令系统指令集合称为该机的指令系统或指令集或指令集。它是程序工作者编制程序的基本依据,也是进行计算机逻辑它是程序工作者编制程序的基本依据,也是进行计算机逻辑设计的基本依据设计的基本依据 。机器语言机器语言指令概述指令概述指令设计者:指令设计者:如何用具体的硬件电路如何用具体的硬件电路 芯片芯片 设备来实设备来实 现机器指令系统的功能。现机器指令系统的功能。指令使用者:指令使用者:使用指令来编制程序,完成预定任务。使用指令来编制程序,完成预定任务。任务任务源程序源程序编译链接编译链接汇编语言汇编语言

3、级别级别指令指令寻址方式寻址方式数据表示数据表示三个方面。三个方面。包括包括指令集:指令集:机器指令:机器指令:指令系统:指令系统:计算机能够直接进行某种基本操作的二进制代码语言。计算机能够直接进行某种基本操作的二进制代码语言。全部机器指令的集合,是表征计算机性能的重要指标。全部机器指令的集合,是表征计算机性能的重要指标。层次关系层次关系指令指令指令指令指令指令指令指令硬件硬件用户用户操作操作软件软件软件软件软件软件软件软件指令系统基本概念o机器指令(指令) n计算机能直接识别、执行的某种操作命令。 o指令系统(指令集) n 一台计算机中所有机器指令的集合。 n机器硬件设计的依据,也是软件设计

4、的基础。 n硬件和软件间的界面,直接影响计算机系统性能7.2 指令系统的发展与性能要求7.2.1指令系统的发展 计算机的程序是由一系列机器指令组成的。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分: 微指令-微程序级的命令,解释执行机器指令。属于硬件 宏指令-由若干条机器指令组成的软件指令,完成某一特定功能。属于软件 机器指令-介于微指令与宏指令之间,通常简称为指令,完成某一特定操作。本章所讨论的指令,是机器指令。1. 1. 指令系统指令系统指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围

5、。 2 2指令系统的发展指令系统的发展 (1 1)系列计算机)系列计算机系列计算机是指基本指令系统相同、基本体系结构相同的一个系列的各种型号的计算机。其必要条件是同一系列的各机种有共同的指令集而且新推出机种的指令系统一定应包含所有旧机种的全部指令,即实现向上兼容。这样,旧机种上运行的各种软件可以不加任何修改便可在新机种上运行,大大减少了软件开发费用。系列机解决了各机种的软件兼容问题。 (2 2)指令系统结构)指令系统结构从计算机指令系统的角度看当前的计算机指令系统结构分为两大类: 复杂指令集计算机(CISC) 精简指令集计算机(RISC) 系列机的推出解决了各机种的软件兼容问题,大大减少了软件

6、开发费用计算机发展的两大流派3 3指令系统的性能要求指令系统的性能要求 一个完善的指令系统应满足如下四方面的要求:一个完善的指令系统应满足如下四方面的要求: (1 1) 完备性完备性。完备性是指用汇编语言编写各种程序时,指令系统直接提。完备性是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。功能齐全、使用方便。 (2 2) 有效性有效性。有效性是指利用该指令系统所编写的程序能够高效率地运。有效性是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在

7、程序占据存储空间小、执行速度快。行。高效率主要表现在程序占据存储空间小、执行速度快。 (3 3) 规整性规整性。规整性包括指令系统的对称性、匀齐性、指令格式和数据。规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。格式的一致性。 对称性:在指令系统中所有的寄存器和存储器单元都可同等对待,所有对称性:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;的指令都可使用各种寻址方式; 匀齐性:一种操作性质的指令可以支持各种数据类型;匀齐性:一种操作性质的指令可以支持各种数据类型; 格式一致性:指令长度和数据长度有一定的关系,以方便处理和存取。格式一致性:指

8、令长度和数据长度有一定的关系,以方便处理和存取。 (4 4) 兼容性兼容性:至少要能做到:至少要能做到 向上兼容向上兼容 ,即低档机上运行的软件可以在,即低档机上运行的软件可以在高档机上运行。高档机上运行。完善的指令系统完备性高效性规整性兼容性4低级语言与硬件结构的关系 计算机的程序是计算机能够识别的一串指令或语句。编写程序的过程,称为程序设计,而程序设计所使用的工具则是计算机语言 计算机语言有高级语言和低级语言之分。高级语言语句和用法与具体机器的指令系统无关。低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,它们和具体机器的指令系统密切相关。 传统机器级计

9、算机系统的层次结构5.高级语言级4.汇编语言级3.操作系统级2.一般机器级1.微程序设计级7.3 7.3 指令格式指令格式 指令由操作码和地址码两部分组成,它的基本格式如下指令由操作码和地址码两部分组成,它的基本格式如下: 操操 作作 码码 地地 址址 码码 操作码是说明指令操作性质的二进制数代码。操作码是说明指令操作性质的二进制数代码。 操作码所占的二进制位数决定了一台计算机所能允许的指令操作码所占的二进制位数决定了一台计算机所能允许的指令 条数条数。 例如,操作码占用六位二进制码时,这台计算机最多允许有例如,操作码占用六位二进制码时,这台计算机最多允许有: 2 26 664 64 条指令条

10、指令1 1. .操作码操作码 2. 2. 地址码地址码 根据一条指令中有几个操作数地址,可将该指令称为根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。几操作数指令或几地址指令。一般的操作数有被操作数、操作数及操作结果这一般的操作数有被操作数、操作数及操作结果这三种数,因而就形成了三地址指令格式。在此基三种数,因而就形成了三地址指令格式。在此基础上,后来又发展成二地址格式、一地址格式和零地础上,后来又发展成二地址格式、一地址格式和零地址格式,如下图所示:址格式,如下图所示:操作码操作码A1A1A2A2A3A3操作码操作码A1A1A2A2操作码操作码A A操作码操作码三地址

11、指令三地址指令 二地址指令二地址指令 单地址指令单地址指令 零地址指令零地址指令 三地址指令字中有三个操作数地址。三地址指令字中有三个操作数地址。(A1)(A1)OPOP(A2)(A2) A3A3 A1A1为被操作数地址,也称源操作数地址;为被操作数地址,也称源操作数地址; A2A2为操作数地为操作数地址,也称终点(目的)操作数地址;址,也称终点(目的)操作数地址; A3A3为存放结果的地址。为存放结果的地址。同样,同样,A1,A2,A3A1,A2,A3既可以是内存中的单元地址,也可以是运算既可以是内存中的单元地址,也可以是运算器中通用寄存器的地址。器中通用寄存器的地址。 单地址指令又称为单操

12、作数指令。通常这种指令通常以单地址指令又称为单操作数指令。通常这种指令通常以运算器中累加寄存器运算器中累加寄存器ACAC中的数据为被操作数,指令字的地中的数据为被操作数,指令字的地址码字段所指明的数为操作数,操作结果又放回累加寄存器址码字段所指明的数为操作数,操作结果又放回累加寄存器ACAC中。中。 (AC)(AC)OPOP(A)(A)ACACOPOP表示操作性质;(表示操作性质;(ACAC)表示累加寄存器)表示累加寄存器ACAC中的数;中的数;(A A)表示内存中地址为)表示内存中地址为A A的存储单元中的数或运算器中地的存储单元中的数或运算器中地址为址为A A的通用寄存器中的数;的通用寄存

13、器中的数; 表示把操作(运算)结果传表示把操作(运算)结果传送到指定的地方。送到指定的地方。 二地址指令常称为双操作数指令,它的两个地址码二地址指令常称为双操作数指令,它的两个地址码字段分别指明参与操作的两个数在内存中或运算字段分别指明参与操作的两个数在内存中或运算器中通用寄存器的地址,器中通用寄存器的地址,A1A1作存放操作结果的地址。作存放操作结果的地址。(A1)(A1)OPOP(A2)(A2) A1A1 零地址指令的指令字中只有操作码,而没有地零地址指令的指令字中只有操作码,而没有地址码。址码。 7.3.1 操作码(OP)与地址码(AC)o指令系统中每一条指令对应一个操作码 o操作码的长

14、度取决于指令系统的规模 nLOP=log2n o定长指令、变长指令 o地址码包括被操作数,操作数,操作结果操作码字段地址码字段1、指令分类方法o按计算机系统的层次结构分类 o按操作数个数分类 o按操作数物理位置分类o微指令: n微程序级的指令,属于硬件层面 o机器指令: n每一条机器指令可以完成一个独立的运算。 o宏指令: n若干机器指令组成的软件指令,属于软件 OPA1A2A3 三地址指令 OPA1A2 二地址指令 OPA1 一地址指令 OP零地址指令 (A1)OP(A2) (A3) (A1)OP(A2) (A1) (AC)OP(A) AC如停机,空操作,堆栈指令o 5、指令字长度o指令中包

15、含二进制代码的位数 o与机器字的长度有关: 单字长,双字长,半字长。 o采用多字长指令的目的 n解决寻址较大存储空间的问题 n取指令要多次访内,影响速度,占用存储空间较大。 o等长指令: 结构简单,控制线路简单。 o变长指令: 结构灵活,充分利用指令长度,控制复杂 指令字长指令字长指令字长决定于指令字长决定于操作码的长度操作码的长度操作数地址的长度操作数地址的长度操作数地址的个数操作数地址的个数使用多字长指令的目的:使用多字长指令的目的: 在于提供足够的地址位数来解决访问内存任何单元的问题。在于提供足够的地址位数来解决访问内存任何单元的问题。最大缺点:最大缺点: 两次或多次访问内存才可一取出一

16、条指令,降低了两次或多次访问内存才可一取出一条指令,降低了CPU 的运算速度。指令越长,占用了更多的存储空间。的运算速度。指令越长,占用了更多的存储空间。2.长度限制长度限制操作码长度地址码长度操作码长度地址码长度指令中包含的二进制代码的位数。指令中包含的二进制代码的位数。计算机一次能够处理的最长的二进制位数。计算机一次能够处理的最长的二进制位数。单字长指令:单字长指令: 指令字长度指令字长度 机器字长度机器字长度半字长指令:半字长指令: 指令字长度指令字长度 半个机器字长度半个机器字长度双字长指令:双字长指令: 指令字长度指令字长度 2个机器字长度个机器字长度3.分类:分类:1.基本概念基本

17、概念(2) 指令字长指令字长: (1) 机器字长:机器字长:(3) 存储字长:存储字长:一个存储单元可存储的二进制代码一个存储单元可存储的二进制代码 的位数。的位数。6、指令字助记符o ADD o SUB o MOV o JMP o STR o LDA7 7、指令操作码的扩展技术、指令操作码的扩展技术(1)(1)操作码定长操作码定长mm 2 2n n一般在指令字的最高位分配若干个固定位表示操作码。一般在指令字的最高位分配若干个固定位表示操作码。若操作码占用若操作码占用n n位,则可以表示多少条不同的指令?位,则可以表示多少条不同的指令?操作码定长编码法的特点是什么?操作码定长编码法的特点是什么

18、?(2)(2)操作码长度可变操作码长度可变这种格式对于简化硬件设计,减这种格式对于简化硬件设计,减少指令译码时间非常有利,在字少指令译码时间非常有利,在字长较长的大、中型机和超级小型长较长的大、中型机和超级小型机以及机以及RISCRISC上广泛采用。上广泛采用。各指令操作码的位置、位数不固定,根据需要变化。各指令操作码的位置、位数不固定,根据需要变化。这种格式能够有效地压缩程序中操作码的平这种格式能够有效地压缩程序中操作码的平均长度,在字长较短的微型机上广泛采用。均长度,在字长较短的微型机上广泛采用。 如如Z80Z80、Intel8086Intel8086PentiumPentium等。等。含

19、义?含义?优点?优点?缺点?缺点?增加指令译码和分析的难度,使控制器的设计复增加指令译码和分析的难度,使控制器的设计复杂化。杂化。 扩展操作码技术扩展操作码技术 举例:举例:采用采用“扩展操作码技术扩展操作码技术”设计设计61条指令,其中三地址指令条指令,其中三地址指令15条,条,二地址指令二地址指令15条,一地址指令条,一地址指令15条,零地址指令条,零地址指令16条。条。解:解:OP A1 A2 A3(1)OPA2A3(2)000000011110A1A1A1A2A2A2A3A3A315条三地址指令条三地址指令4 位操作码位操作码 A2A2A2A3A3A311111111111100000

20、001111015条二地址指令条二地址指令8 位操作码位操作码 扩展操作码技术扩展操作码技术OPA3(3)OP(4)111111111111111111111111A3A3A30000000111101111111111111111111111111111111111110000000111113.设计原则设计原则(1)使用频度使用频度较高较高的指令占用的指令占用较短较短的操作码的操作码(2)使用频度使用频度较低较低的指令占用的指令占用较长较长的操作码的操作码有利于有利于CPU缩短对指令的译码时间,提高指令执行速度。缩短对指令的译码时间,提高指令执行速度。15条一地址指令条一地址指令12 位操

21、作码位操作码16条零地址指令条零地址指令16 位操作码位操作码 例题:假如某计算机模型:7条指令(I1I7),程序中出现的概率用Pi表示,则可考虑表51所示的方案,这就是扩展操作码,使用频率高的指令的操作码为2位,低的用4位。这不是压缩到最小代码的方案,因为在计算机中的操作码还是希望有一定的规整性,否则会引起硬件实现的复杂化。2.2401.0101.0403.0405.0217.0228.0245.01niiiIP指令的平均长度:由此可见,操作码扩展技术是一种重要的由此可见,操作码扩展技术是一种重要的指令优化技术,指令优化技术,它可以缩短指令的平均长度,它可以缩短指令的平均长度,减少程序的总位

22、数以及增加指令字所能表示的减少程序的总位数以及增加指令字所能表示的操作信息。操作信息。当然,扩展操作码比固定操作码译当然,扩展操作码比固定操作码译码复杂,使控制器的设计难度增大,且需更多码复杂,使控制器的设计难度增大,且需更多的硬件来支持。的硬件来支持。8 8、 指令长度与字长的关系指令长度与字长的关系 字长:字长:指计算机能直接处理的二进制数据的指计算机能直接处理的二进制数据的位数位数,它是计算机的一个重要技术指标。,它是计算机的一个重要技术指标。 作用作用: :字长决定了计算机的运算精度,字长越字长决定了计算机的运算精度,字长越长,计算机的运算精度越高。长,计算机的运算精度越高。一般机器的

23、字长都是字节长度一般机器的字长都是字节长度( (即即8 8位位) )的的l l,2 2,4 4或或8 8倍数。倍数。 指令的长度:主要取决于指令的长度:主要取决于操作码的长度操作码的长度、操作数地址操作数地址的长度的长度和和操作数地址的个数操作数地址的个数。各指令的长度不是固定的,。各指令的长度不是固定的,但也不是任意的。但也不是任意的。指令的长度通常为字节的整数倍。指令的长度通常为字节的整数倍。 指令的长度与机器的字长没有固定的关系指令的长度与机器的字长没有固定的关系,它既可以小于或等于机器的字长,也可以大于机器它既可以小于或等于机器的字长,也可以大于机器的字长。前者称为短格式指令,后者称为

24、长格式指的字长。前者称为短格式指令,后者称为长格式指令,一条指令存放在地址连续的存储单元中。令,一条指令存放在地址连续的存储单元中。 在同一台计算机中可能既有短格式指令又有长格在同一台计算机中可能既有短格式指令又有长格式指令,但通常是把最常用的指令式指令,但通常是把最常用的指令( (如算术逻辑运算如算术逻辑运算指令、数据传送指令指令、数据传送指令) )设计成短格式指令,以便节省设计成短格式指令,以便节省存储空间和提高指令的执行速度。存储空间和提高指令的执行速度。例:例:out port,ALout port,AL-长格式长格式 out DX,ALout DX,AL-短格式短格式7、PDP-11

25、 指令格式举例OP(10bit)MODE(3)Rn(3)OP(10bit)MODE(3)Rn(3)MODE(3)Rn(3)源操作数被操作数寻址模式操作数地址单字长指令双字长指令第一字节第一个半字第二个半字第三个半字第二字节 第三字节 第四字节 第五字节 第六字节IBM 370系列机的指令格式(1)R1OPR2RR型OPR1R2RRE型RR型指令与RRE型指令是寄存器-寄存器型指令,参加运算的操作数都在通用寄存器中。课堂练习与思考:课堂练习与思考:1.指令格式中,地址码字段是通过 来体现的,因为通过某种方式的变换,可以给出 地址。常用的指令格式有零地址指令、单地址指令、 三种.寻址方式 操作数有

26、效 二地址指令 2、二地址指令中,操作数的物理位置可安排在_。A、栈顶和次栈顶 B、两个主存单元 C、一个主存单元和一个寄存器 D、两个寄存器 C3、指令格式是指令用 表示的结构形式,通常格式中由操作码字段和 字段组成。二进制代码 地址码 4、指令字长为16位,每个地址码为6位,采用扩展操作码的方式,设计14条二地址指令,100条一地址指令,100条零地址指令。 画出扩展图。 计算操作码平均长度。【解】 操作码的扩展如下:0 0 0 0 14条二地址指令1 1 0 1 1 1 1 0 0 0 0 0 0 0 100条一地址指令1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0

27、1 0 0 0 0 0 0 0 0 100条零地址指令1 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1 操作码平均长度 = (414+10100+16100)/21412.47.3.2 指令寻址方式o寻找指令或操作数有效地址的方式 n指令寻址 o顺序寻址 o跳跃寻址 n操作数寻址 1、顺序寻址o程序的指令序列在主存顺序存放。程序执行时从第一条指令开始,逐条取出并逐条执行,这种程序的顺序执行过程,称为顺序寻址方式。 o为了达到顺序寻址的目的,CPU中必须有一个程序计数器(PC)对指令的顺序号进行计数。PC中开始时存放程序的首地址,每执行一条指令,PC 加1,以指出下条指令的地址,直

28、到程序结束。 oPC存放下一条指令的地址 指令寻址指令寻址数据寻址数据寻址寻址方式寻址方式分类:分类:一、指令寻址一、指令寻址寻找指令寻找指令寻找数据寻找数据(1)顺序寻址)顺序寻址( PC ) + 1赋值赋值PC(2)跳跃:)跳跃:由转移指令指出由转移指令指出顺序寻址顺序寻址1顺序寻址顺序寻址2顺序寻址顺序寻址3跳跃寻址跳跃寻址7顺序寻址顺序寻址8寻址方式寻址方式 确定确定 本条指令本条指令 的的 操作数地址操作数地址下一条下一条 欲执行欲执行 指令指令 的的 指令地址指令地址含义:含义:LDA 1000ADD 1001DEC 1200JMP 7LDA 2000SUB 2001INCSTA

29、2500LDA 1100.123456789指令地址寻址方式指令地址寻址方式指令地址指令地址指令指令0PC0+17.3.3 操作数的寻址方式o形成操作数有效地址的方法。 n单地址指令地址码的构成: X , I ,D n实际有效地址为E, 实际操作数S n S= (E) OPXID寻址方式分类o立即寻址 o直接寻址 o间接寻址 o寄存器寻址、o寄存器间接寻址 o相对寻址 o变址寻址 o复合寻址 数据寻址数据寻址 形式地址形式地址 A操作码操作码寻址特征寻址特征描述指令功能描述指令功能决定寻址方式决定寻址方式由由形式地址形式地址找到找到有效地址有效地址的过程。的过程。精髓:精髓:指令字中的地址指令

30、字中的地址 操作数的真实地址操作数的真实地址 1. 立即寻址立即寻址 OP # A立即寻址特征立即寻址特征立即数立即数(1)格式)格式指令执行阶段不访存指令执行阶段不访存A 的位数限制了立即数的范围的位数限制了立即数的范围(3)特点:)特点: 且且A可正可负可正可负 补码补码(2)结果:形式地址)结果:形式地址 A 就是操作数就是操作数指令字长指令字长存储字长存储字长机器字长机器字长约定约定 2. 直接寻址直接寻址EA = A 有效地址由形式地址直接给出有效地址由形式地址直接给出公式:公式:寻址特征寻址特征AACCOPA操作数操作数主存主存执行阶段访问一次存储器执行阶段访问一次存储器A 的位数

31、决定了该指令操作数的寻址范围的位数决定了该指令操作数的寻址范围操作数的地址不易修改(必须修改操作数的地址不易修改(必须修改A)特点:特点:变换过程:变换过程:变换过程:变换过程:3. 隐含寻址隐含寻址操作数地址隐含在操作码中操作数地址隐含在操作码中公式:公式:寻址特征寻址特征AACC暂存暂存ALU另一个操作数另一个操作数隐含在隐含在 ACC 中中ADDA操作数操作数主存主存举例:举例:如如 8086MUL 指令指令被乘数隐含在被乘数隐含在 AX(16位)或位)或 AL(8位)中位)中MOVS 指令指令 源操作数的地址隐含在源操作数的地址隐含在 SI 中中目的操作数的地址隐含在目的操作数的地址隐

32、含在 DI 中中指令字中少了一个地址字段,可缩短指令字长指令字中少了一个地址字段,可缩短指令字长特点:特点:4. 间接寻址间接寻址EA =(A)有效地址由形式地址间接提供有效地址由形式地址间接提供公式:公式:寻址特征寻址特征AEAA1EA寻址特征寻址特征A一次间址一次间址多次间址多次间址操作数操作数操作数操作数OPAEA主存主存OPA A1主存主存 EA10执行指令阶段执行指令阶段 2 次访存次访存/多次访存多次访存可扩大寻址范围可扩大寻址范围 便于编制程序便于编制程序特点:特点:变换过程:变换过程:5. 寄存器直接寻址寄存器直接寻址EA = Ri 有效地址即为寄存器编号有效地址即为寄存器编号

33、公式:公式:寻址特征寻址特征OPRi操作数操作数R0RiRn寄存器寄存器执行阶段不访存,只访问寄存器,执行速度快执行阶段不访存,只访问寄存器,执行速度快寄存器个数有限,可缩短指令字长寄存器个数有限,可缩短指令字长特点:特点:变换过程:变换过程:6. 寄存器间接寻址寄存器间接寻址EA = ( Ri ) 有效地址在寄存器中有效地址在寄存器中公式:公式:寻址特征寻址特征OPRi地址地址R0RiRn寄存器寄存器有效地址在寄存器中,有效地址在寄存器中, 操作数在存储器中,执行阶段访存操作数在存储器中,执行阶段访存便于编制循环程序便于编制循环程序特点:特点:操作数操作数主存主存操作数操作数7. 基址寻址基

34、址寻址(1) 采用专用寄存器作基址寄存器采用专用寄存器作基址寄存器EA = ( BR ) + A BR 为基址寄存器为基址寄存器公式:公式:寻址特征寻址特征ALUOPABR操作数操作数主存主存在程序的执行过程中在程序的执行过程中 BR 内容不变,形式地址内容不变,形式地址 A 可变可变可扩大寻址范围可扩大寻址范围便于程序浮动便于程序浮动BR 内容由操作系统或管理程序确定内容由操作系统或管理程序确定特点:特点:变换过程:变换过程:变换过程:变换过程:(2) 采用通用寄存器作基址寄存器采用通用寄存器作基址寄存器EA = ( Ri ) + A Ri 为基址寄存器为基址寄存器公式:公式:寻址特征寻址特

35、征ALUR0 作基址寄存器作基址寄存器OPR0A通用寄存器通用寄存器R0Rn-1R1操作数操作数主存主存由用户指定哪个通用寄存器作为基址寄存器由用户指定哪个通用寄存器作为基址寄存器基址寄存器的内容由操作系统确定基址寄存器的内容由操作系统确定在程序的执行过程中在程序的执行过程中 R0 内容不变,形式地址内容不变,形式地址 A 可变可变特点:特点:变换过程:变换过程:8. 变址寻址变址寻址EA = ( IX ) +AIX 为变址寄存器(专用)为变址寄存器(专用)通用寄存器也可以作为变址寄存器通用寄存器也可以作为变址寄存器特点:特点:寻址特征寻址特征ALUOPAIX操作数操作数主存主存可扩大寻址范围

36、可扩大寻址范围便于处理数组问题便于处理数组问题IX 的内容由用户给定的内容由用户给定 在程序的执行过程中在程序的执行过程中 IX 内容可变,形式地址内容可变,形式地址 A 不变不变特点:特点:变换变换过程:过程:9. 相对寻址相对寻址 EA = ( PC ) + AA 是相对于当前指令的位移量(可正可负,补码)是相对于当前指令的位移量(可正可负,补码)公式:公式:操作数操作数寻址特征寻址特征ALU相对距离相对距离 A1001PCOPA主存主存1000AOPA 的位数决定操作数的寻址范围的位数决定操作数的寻址范围程序浮动程序浮动广泛用于转移指令广泛用于转移指令特点:特点:出栈出栈 (SP)+ 1

37、 SP进栈进栈 (SP) 1 SP先进后出先进后出(一个入出口)(一个入出口)10. 堆栈寻址堆栈寻址(1) 堆栈的特点堆栈的特点堆栈堆栈硬堆栈硬堆栈软堆栈软堆栈多个寄存器多个寄存器指定的存储空间指定的存储空间 11FFFH +12000 H栈顶栈顶栈底栈底2000 HSP2000 H1FFF HSP1FFFH栈顶栈顶栈底栈底进栈进栈出栈出栈 1FFF H栈顶栈顶 2000 H栈顶栈顶栈顶地址栈顶地址 由由 SP 指出指出(2) 堆栈寻址举例堆栈寻址举例15200HACCSPX栈顶栈顶200H栈底栈底主存主存PUSH A 前前15栈顶栈顶200H栈底栈底主存主存X1FFH1FFHSP15ACC

38、PUSH A 后后X栈顶栈顶200H栈底栈底主存主存151FFHYACC1FFHSPPOP A 前前栈顶栈顶200H栈底栈底主存主存X15200HSP15ACCPOP A 后后11设计指令格式涉及的问题设计指令格式涉及的问题机器设计复杂机器设计复杂寻址方式复杂寻址方式复杂指令集丰富指令集丰富使用灵活,可编写出高效的程序使用灵活,可编写出高效的程序(1)机器设计容易机器设计容易使用上困难使用上困难寻址方式少寻址方式少(2)1. 指令系统的指令系统的 兼容性兼容性,(向上兼容)(向上兼容)2. 操作类型操作类型指令个数指令个数操作的难易程度操作的难易程度3.数据类型数据类型指令格式指令格式指令字长

39、、操作码位数指令字长、操作码位数地址码位数、地址个数地址码位数、地址个数寻址方式、是否采用扩展操作码寻址方式、是否采用扩展操作码4.5.寻址方式寻址方式,是否采用是否采用扩展操作码技术扩展操作码技术6.寄存器个数寄存器个数 (1)直接寻址的二地址指令)直接寻址的二地址指令3条;条;(2)变址寻址的一地址指令)变址寻址的一地址指令6条;条;(3)寄存器寻址的二地址指令)寄存器寻址的二地址指令8条;条;(4)直接寻址的一地址指令)直接寻址的一地址指令12条;条;(5)零地址指令)零地址指令32条。条。例例2:某机字长:某机字长16为,存储器直接寻址空间为为,存储器直接寻址空间为128字,变址时的位

40、移量为字,变址时的位移量为6463, 16个通用寄存器均可组作为变址寄存器。采用扩展操作码技术,设计一套指令个通用寄存器均可组作为变址寄存器。采用扩展操作码技术,设计一套指令 系统格式,满足下列寻址类型的要求:系统格式,满足下列寻址类型的要求:解:解:2n = 128 n = 72m = 128 m = 7由题干可知由题干可知 直接寻址空间为直接寻址空间为128个字个字变址位移量为变址位移量为128指令中的指令中的地址码字段地址码字段A所占的位数所占的位数 = 7(1)直接寻址的二地址指令)直接寻址的二地址指令3条:条:OPA1A27位位7位位2位位0 00 11 0二地址指令二地址指令3条条

41、解:解:(2)变址寻址的一地址指令)变址寻址的一地址指令6条条变址寄存器选择变址寄存器选择AOP7位位4位位5位位可使用可使用11111111111111000001010011100101变址寻址的一地址指令变址寻址的一地址指令6条条解:解:R1R2OPOP(3)寄存器寻址的二地址指令)寄存器寻址的二地址指令8条条4位位4位位8位位111011111011110111101111011110111101111011110000001010011100101110111寄存器寻址的二地址指令寄存器寻址的二地址指令8条条已经分配完毕已经分配完毕解:解: (4)直接寻址的一地址指令)直接寻址的一地

42、址指令12条条AOP7位位9位位 直接寻址的直接寻址的一地址指令一地址指令12条条111110000111110001111110010111110011111110100111110101111110110111110111111111000111111001111111010111111011111101111已经分配完毕已经分配完毕解:解:(5)零地址指令)零地址指令32条条111111110很多种很多种 答:答:指令格式及寻址方式的特点如下: 1)单字长二地址指令; 2)操作码可指定16条指令; 3)源和目的均有8种寻址方式; 4)源地址寄存器和目的地址寄存器均有8个; 5)可寻址范围

43、为164K 例2.分析以下指令格式及寻址方式特点?OP寻址方式 寄存器 寻址方式 寄存器源地址目标地址 15 12 11 9 8 6 5 3 2 020050011002001005008001002002100OPXD=100PC=1000R基基=2000 寻址方式寻址方式X操作数操作数立即立即0100直接直接1200间接间接2500相对相对3100变址变址4200变址间址变址间址5500有效地址有效地址ES=DE=D=100E=(D)=200E=PC+D=1100E=(R)+D=2100E=(R)+D)=200例3 3设某机的指令格式、有关寄存器和主存内容如下,设某机的指令格式、有关寄存器

44、和主存内容如下,X X为寻址方式,为寻址方式,D D为形式地址,请在下表中填入有效地址为形式地址,请在下表中填入有效地址E E及操及操作数的值。?作数的值。?解答:例题例题4. 4. 某机指令格式如下某机指令格式如下: : 15 10 9 8 7 0其中X为寻址特征位,且X=00时不变址;X=01时用变址寄存器X1进行变址;X=10时用变址寄存器X2进行变址;X=11时相对寻址。设(PC)=1234H,(X1) =(X2)=1122H,请确定下列指令的有效地址(均用十六进制表示,H表示十六进制);(1)4420H (2)2244H (3)1322H (4)3521H (5)6723H解:(1)

45、指令4420H展开为:0100010 00 0100000BX=00不变址,有效地址=D=0020HOPXD(2)指令2244H展开为:001000 10 01000100BX=10用变址寄存器X2进行变址,有效地址=(X2)+D=1122H+44H=1166H(3)指令1322H展开为:000100 11 00100010BX=11为相对寻址,有效地址=(PC)+D=1234H+ 22H=1256H(4)指令3521H展开为:001101 01 00100001BX=01用变址寄存器X1进行变址,有效地址=(X1)+D=0037H+21H=0058H(5)指令6723H展开为:011001

46、11 00100011BX=11为相对寻址,有效地址=(PC)+D=1234H+23H =1257H课堂练习与思考:课堂练习与思考:1、若存储器中的内容是操作数的地址,则使用的寻址方式是 。 2、单地址指令中为了实现两个数的算术运算,除地址码指明的一个操作数外,另一个常采用 寻址方式。 存储器间接寻址 隐含 3、变址寻址方式中,操作数的有效地址等于 。A、基值寄存器内容加上形式地址(位移量)B、堆栈指示器内容加上形式地址(位移量)C、变址寄存器内容加上形式地址(位移量)D、程序记数器内容加上形式地址(位移量)C课堂练习与思考:课堂练习与思考:4、用某个寄存器中操作数的寻址方式称为_寻址。A 直

47、接 B 间接 C 寄存器直接 D 寄存器间接 C5. 寄存器间接寻址方式中,操作数处在_。 A. 通用寄存器 B. 主存单元 C. 程序计数器 D. 堆栈B6、指令系统采用不同寻址方式的目的是_。A 实现存贮程序和程序控制;B 缩短指令长度,扩大寻址空间,提高编程灵活性;C 可直接访问外存;D 提供扩展操作码的可能并降低指令译码的难度;B课堂练习与思考:课堂练习与思考:7 7指令格式如下所示,OP为操作码字段,试分析指令格式及寻址方式特点。15 10 9 8 7 4 3 0解:解:双字长二地址指令,用于访问存储器,操作码字段可指定64种操作;RS型指令,一个操作数在通用寄存器中(共16个通用寄

48、存器),另一个操作数在内存中有效地址可通过基址寻址求得,即有效地址等于基址寄存器(共16个)内容加上位移量。 OP源寄存器基址寄存器位移量(16位)课堂练习与思考:课堂练习与思考:8. 某机主存容量为 4M 16 位,且存储字长等于指令字长,若该机的指令系统具备 120 种操作。操作码位数固定,且具有直接、间接、立即、相对四种寻址方式。 (1)画出一地址指令格式并指出各字段的作用; (2)该指令直接寻址的最大范围; (3)一次间址的寻址范围; (4)相对寻址的寻址范围。 答:指令字长 16 位,操作码为 7 位,寻址特征位 2 位,地址码 7 位; -6463 ; 15 9 8 7 6 02

49、16 ; 2 16 OP寻址特征地址码1. 1.数据传送类指令数据传送类指令 这类指令的功能是实现寄存器与寄存器,寄存器与存储单这类指令的功能是实现寄存器与寄存器,寄存器与存储单元以及存储单元与存储单元之间的数据传送。元以及存储单元与存储单元之间的数据传送。 数据传送指令主要包括取数指令、存数指令、传送指令、数据传送指令主要包括取数指令、存数指令、传送指令、 成组传送指令、字节交换指令、清累加器指令、堆栈操作成组传送指令、字节交换指令、清累加器指令、堆栈操作 指令等等。指令等等。2.2.算术运算指令算术运算指令 这类指令包括二进制定点加、减、乘、除指令,浮点加、这类指令包括二进制定点加、减、乘

50、、除指令,浮点加、减、乘、除指令,求反、求补指令,算术移位指令,算术比较减、乘、除指令,求反、求补指令,算术移位指令,算术比较指令,十进制加、减运算指令等。这类指令主要用于定点或浮指令,十进制加、减运算指令等。这类指令主要用于定点或浮点的算术运算。大型机(如点的算术运算。大型机(如IBM 370IBM 370机、国产银河机、机、国产银河机、CRAY-1CRAY-1机、机、CDCCDC的的STARSTAR100100机等)中还设置有向量运算机等)中还设置有向量运算 指令,可直指令,可直接对整个向量或矩阵进行求和、求积运算。接对整个向量或矩阵进行求和、求积运算。7.4.1 指令的分类mov ax,

51、bx+60hpush axadd ax,bp+di mul bx3.3.逻辑运算指令逻辑运算指令这类指令包括逻辑加、逻辑乘、逻辑比较、测等指令、按这类指令包括逻辑加、逻辑乘、逻辑比较、测等指令、按位加、逻辑移位等指令,主要用于无符号数的位操作、代码的位加、逻辑移位等指令,主要用于无符号数的位操作、代码的转换、判断及运算。移位指令用来对寄存器的内容实现左移、转换、判断及运算。移位指令用来对寄存器的内容实现左移、右移或循环移位。右移或循环移位。4.4.程序控制指令程序控制指令程序控制指令也称转移指令。执行程序时,有时机器执行程序控制指令也称转移指令。执行程序时,有时机器执行到某条指令时,出现了几种

52、不同结果,这时机器必须执行一条到某条指令时,出现了几种不同结果,这时机器必须执行一条转移指令,根据不同结果进行转移,从而改变程序原来执行的转移指令,根据不同结果进行转移,从而改变程序原来执行的顺序。这种转移指令称为条件转移指令。还有无条件转移指令、顺序。这种转移指令称为条件转移指令。还有无条件转移指令、转子程序指令、返回主程序指令、中断返回指令等。转子程序指令、返回主程序指令、中断返回指令等。 转子指令是转向本指令操作地址所指出的子程序入口,并转子指令是转向本指令操作地址所指出的子程序入口,并将原程序中下一条指令地址存入内存某单元中,以便为返回主将原程序中下一条指令地址存入内存某单元中,以便为

53、返回主程序时提供返回地址。程序时提供返回地址。and ax,1000hor ax,bxjnz 2000hjmp 1200h5.5.输入输出指令输入输出指令 输入输出指令主要用来启动外围设备,检查测试外围输入输出指令主要用来启动外围设备,检查测试外围设备的工作状态,并实现外部设备和设备的工作状态,并实现外部设备和CPUCPU之间,或外围设之间,或外围设备与外围设备之间的信息传送。备与外围设备之间的信息传送。 6.6.字符串处理指令字符串处理指令字符串处理指令是一种非数值处理指令,一般包括字字符串处理指令是一种非数值处理指令,一般包括字符串传送、字符串转换(把一种编码的字符串转换成另一符串传送、字

54、符串转换(把一种编码的字符串转换成另一种编码的字符串)、字符串替换(把某一字符串用另一字种编码的字符串)、字符串替换(把某一字符串用另一字符串替换)等。这类指令在文字编辑中对大量字符串进行符串替换)等。这类指令在文字编辑中对大量字符串进行处理。处理。in ax,dxout dx,axmovsbcmpsb7.7.特权指令特权指令特权指令是指具有特殊权限的指令。这类指令只用特权指令是指具有特殊权限的指令。这类指令只用于操作系统或其他系统软件,一般不直接提供给用户使于操作系统或其他系统软件,一般不直接提供给用户使用。用。 在多用户、多任务的计算机系统中特权指令必不可在多用户、多任务的计算机系统中特权

55、指令必不可少。它主要用于系统资源的分配和管理。少。它主要用于系统资源的分配和管理。8.8.其他指令其他指令 除以上各类指令外,还有状态寄存器置位、复位指除以上各类指令外,还有状态寄存器置位、复位指令、测试指令、暂停指令,空操作指令,以及其他一些令、测试指令、暂停指令,空操作指令,以及其他一些系统控制用的特殊指令。系统控制用的特殊指令。LGDT ;装入全局描述表LLDT ;装入局部描述符表hltnop7.4.2 8086/8088典型指令o数据传送类 n取数 MOV AX,TEMP n存数 MOV TEMP,AX n传送 MOV AX,CX o算术运算类 n定点, nADD,ADC,INC,SU

56、B,DEC MUL,DIV等 n浮点, ,求反,求补 NEG,比较 o逻辑运算类 nNOT,AND,OR,XOR,TEST 8086/8088典型指令o程序控制类 n无条件转移 JMP 条件转移 C,Z,N,P,V n转子程序 JSR 子程序返回 RET 中断返回 IRET o输入/输出类 nIN AX,n OUT n, AX o字符串处理 字符串传送、转换、比较、查找 o特权指令: 系统资源的分配和管理 o其他类 n标志操作:CLC(clear carry flag) nCLI (clear interrupt elable flag) nHLT,WAIT,ESC,LOCK 7.5.3 指令

57、系统发展方向oCISC-复杂指令系统计算机 nComplex Instruction System Computer n指令数量多,指令功能,复杂的计算机。 o RISC-精简指令系统计算机 nReduced Instruction System Computer n指令数量少,指令功能单一的计算机。 1. CISC(complex instruction set computer)复杂指令系统计算机复杂指令系统计算机(1)()(VLSI的发展使硬件结构趋于复杂,功能强大)保持与旧机型的兼容,的发展使硬件结构趋于复杂,功能强大)保持与旧机型的兼容, 为此需要不断的新增指令为此需要不断的新增指令

58、.(2)缩小指令与高级语言的差异,便于编译器设计)缩小指令与高级语言的差异,便于编译器设计.精髓:精髓:CISC的思想是使硬件资源主要用于提高指令系统的功能和规模上。的思想是使硬件资源主要用于提高指令系统的功能和规模上。2CISC的缺点:的缺点:(1)复杂指令利用率不高。)复杂指令利用率不高。“8020规律规律”(2)降低整个机器的执行速度)降低整个机器的执行速度(3)使计算机组成复杂)使计算机组成复杂(4)设计周期长,易出现设计错误)设计周期长,易出现设计错误1. CISC的设计思想的设计思想3、 RISC(Reduced Instruction Set Computer)精简指令系统计算机

59、精简指令系统计算机 以提高计算机的处理速度为依据来确定指令系统以提高计算机的处理速度为依据来确定指令系统,便于流水处理。,便于流水处理。硬件实现容易,支持优化编译。硬件实现容易,支持优化编译。 (2) RISC 的主要特征的主要特征 (1) RISC的设计思想的设计思想 选用使用频率较高的一些选用使用频率较高的一些 简单指令简单指令 复杂指令的功能由简单指令来组合复杂指令的功能由简单指令来组合 指令指令 长度固定长度固定 只有只有 LOAD / STORE 指令访存指令访存 流水技术流水技术 一个时钟周期一个时钟周期 内完内完 成一条指令成一条指令 组合逻辑组合逻辑 实现控制器实现控制器 多个

60、多个 通用通用 寄存器寄存器 采用采用 优化优化 的的 编译编译 程序程序 典型程序中典型程序中 80% 的语句仅仅的语句仅仅使用处理机中使用处理机中 20% 的指令。的指令。现象:现象:(常用的指令,仅占指令总数的(常用的指令,仅占指令总数的20,但在程序中出现的频度却占,但在程序中出现的频度却占80) 8020 规律规律20世纪世纪80年代年代RISC型型CPU诞生诞生 对CISC指令系统所作的运行统计分析表明,各种指令使用频率相差悬殊,常用的较为简单的指令,仅占指令总数的20%,但在程序中使用的频率却占80。下表是公司研究了IBM 370计算机的高级语言运行情况后所得到的统计数据。指令类

温馨提示

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

评论

0/150

提交评论