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

下载本文档

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

文档简介

1、第第4 4章章 指令系统指令系统本章内容:本章内容:v指令系统的发展与性能要求指令系统的发展与性能要求 v指令格式指令格式v指令和数据的寻址方式指令和数据的寻址方式 v堆栈寻址方式堆栈寻址方式v典型指令典型指令 4.1 指令系统的发展和性能要求指令系统的发展和性能要求v什么是指令系统什么是指令系统 一台计算机分为两个部分,控制部件和执行部件,控制一台计算机分为两个部分,控制部件和执行部件,控制器就是控制部件,而运算器,存储器,外围设备对控制器来器就是控制部件,而运算器,存储器,外围设备对控制器来说就是执行部件。说就是执行部件。 控制器通过控制总线向执行部件发送的各种控制命令称控制器通过控制总线

2、向执行部件发送的各种控制命令称为为微命令微命令,执行部件接受命令后所进行的操作称为,执行部件接受命令后所进行的操作称为微操作。微操作。微指令微指令:一组实现一定操作功能的微命令的组合,属于硬件:一组实现一定操作功能的微命令的组合,属于硬件机器指令(指令)机器指令(指令):一组可以完成一个独立的算术运算或逻辑运算的微:一组可以完成一个独立的算术运算或逻辑运算的微指令的组合,与硬件紧密关联。指令的组合,与硬件紧密关联。 宏指令宏指令:由若干条机器指令组成的软件指令,属于软件;:由若干条机器指令组成的软件指令,属于软件;指令系统指令系统:一台计算机中所有机器指令的集合,它是表征一台计算机性:一台计算

3、机中所有机器指令的集合,它是表征一台计算机性能的重要因素。能的重要因素。v计算机指令系统的发展过程计算机指令系统的发展过程50年代:年代:指令系统只有定点加减、逻辑运算、数据传送、转移等十几至指令系统只有定点加减、逻辑运算、数据传送、转移等十几至几十条指令。几十条指令。 60年代后期:年代后期:增加了乘除运算、浮点运算、十进制运算、字符串处理等增加了乘除运算、浮点运算、十进制运算、字符串处理等指令,指令数目多达一二百条,寻址方式也趋多样化。指令,指令数目多达一二百条,寻址方式也趋多样化。60年代后期开始年代后期开始出现系列计算机出现系列计算机(指基本指令系统相同、基本体系结构相同的一系列计算指

4、基本指令系统相同、基本体系结构相同的一系列计算机机)一个系列往往有多种型号,它们在结构和性能上有所差异。同一系列一个系列往往有多种型号,它们在结构和性能上有所差异。同一系列的各机种有共同的指令集而且新推出的机种指令系统一定包含所有旧机的各机种有共同的指令集而且新推出的机种指令系统一定包含所有旧机种的全部指令种的全部指令,旧机种上运行的各种软件可以不加任何修改便可在新机种旧机种上运行的各种软件可以不加任何修改便可在新机种上运行,大大减少了软件开发费用。上运行,大大减少了软件开发费用。 70年代末期:年代末期:大多数计算机的指令系统多达几百条。我们称这些计算机大多数计算机的指令系统多达几百条。我们

5、称这些计算机为为复杂指令系统计算机复杂指令系统计算机(CISC)。但是如此庞大的指令系统难以保证其正。但是如此庞大的指令系统难以保证其正确性,不易调试维护,造成硬件资源浪费。为此人们又提出了便于确性,不易调试维护,造成硬件资源浪费。为此人们又提出了便于VLSIVLSI技术实现的技术实现的精简指令系统计算机(精简指令系统计算机(RISC)。 v指令系统性能的要求指令系统性能的要求 指令系统的性能决定了计算机的基本功能,它的设计直接指令系统的性能决定了计算机的基本功能,它的设计直接关系到计算机的硬件结构和用户的需要。关系到计算机的硬件结构和用户的需要。一个完善的指令系统应满足如下四方面的要求:一个

6、完善的指令系统应满足如下四方面的要求: 完备性完备性 用汇编语言编写各种程序时,指令系统直接提供用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。的指令足够使用,而不必用软件来实现。 有效性有效性利用该指令系统所编写的程序能够在计算机上高利用该指令系统所编写的程序能够在计算机上高效率运行,主要表现在程序占据存储空间小、执行速度快。效率运行,主要表现在程序占据存储空间小、执行速度快。 规整性规整性规整性包括指令系统的对称性、匀齐性、指令格规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。式和数据格式的一致性。 兼容性兼容性系列机各机种之间具有相同的基本结

7、构和共同的系列机各机种之间具有相同的基本结构和共同的基本指令集,低档机上运行的软件可以在高档机上运行,即做基本指令集,低档机上运行的软件可以在高档机上运行,即做到到“向下兼容向下兼容” 。 4.2 指令格式指令格式 结果结果y y存放在存放在1313单元单元y y 数据数据x x存放在存放在1212单元单元x x 数据数据c c存放在存放在1111单元单元c c 数据数据b b存放在存放在1010单元单元b b 数据数据a a存放在存放在9 9单元单元a a运算完毕运算完毕, ,机器暂停工作机器暂停工作 停止停止将结果打印出来将结果打印出来 打印打印运算器结果送运算器结果送1313号单元号单元

8、 存数存数 1313完成完成ax+b-c,ax+b-c,结果保留在运算器上结果保留在运算器上 减法减法 1111完成完成ax+b,ax+b,结果保留在运算器上结果保留在运算器上 加法加法 1010完成完成a a* *x,x,结果保留在运算器上结果保留在运算器上 乘法乘法 1212存储器存储器9 9号地址的数送运算器号地址的数送运算器 取数取数 9 9 说说 明明 指令指令13131212111110109 9数据地址数据地址7 76 65 54 43 32 21 1指令地址指令地址数据数据操作码操作码地址码地址码引例:计算引例:计算y=ax+b-cy=ax+b-c这个题目这个题目v指令格式指令

9、格式 指令格式指用机器字表示的指令的结构形式,由两部分指令格式指用机器字表示的指令的结构形式,由两部分组成,即进行何种操作和从存储器的那个单元取数;前者称组成,即进行何种操作和从存储器的那个单元取数;前者称为操作码,后者称为地址码。所以指令的一般格式为:为操作码,后者称为地址码。所以指令的一般格式为: 操作码字段操作码字段 地址码字段地址码字段操作码操作码: :指出指令所进行的操作指出指令所进行的操作, ,如加、减、乘、除、取数如加、减、乘、除、取数以及存数等等。以及存数等等。地址码地址码: :表示参加运算的数据应从存储器的哪个单元取表示参加运算的数据应从存储器的哪个单元取, ,运运算的结果应

10、存到哪个单元。算的结果应存到哪个单元。n个机器字个机器字v指令字长度指令字长度 指令字长度:指令字长度:一个指令字中包含二进制代码的位数。一个指令字中包含二进制代码的位数。机器字长:机器字长:计算机能直接处理的二进制数据的位数,它决定了计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。计算机的运算精度。单字长指令:指令字长等于机器字长度的指令。单字长指令:指令字长等于机器字长度的指令。半字长指令:指令字长等于半个机器字长度的指令。半字长指令:指令字长等于半个机器字长度的指令。双字长指令:指令字长等于两个机器字长度的指令。双字长指令:指令字长等于两个机器字长度的指令。多字长指令:指令

11、字长等于几个机器字长度的指令。多字长指令:指令字长等于几个机器字长度的指令。 使用多字长指令,目的在于提供使用多字长指令,目的在于提供足够的地址位足够的地址位来解决访问来解决访问内存任何单元的寻址问题。其主要缺点是必须两内存任何单元的寻址问题。其主要缺点是必须两次或多次访次或多次访问内存问内存才能取出一整条指令,降低了的运算速度,又占用了才能取出一整条指令,降低了的运算速度,又占用了更多的存储空间。更多的存储空间。指令指令操作码操作码加法加法001减法减法010乘法乘法011除法除法100取数取数101存数存数110打印打印111停机停机000v操作码操作码 指令的操作码部分可以变成二进制代码

12、。我们用指令的操作码部分可以变成二进制代码。我们用3位二位二进制数表示八种指令的操作码(如下表)。进制数表示八种指令的操作码(如下表)。 组成操作码的字段位数一般取决于计算机指令系统复杂组成操作码的字段位数一般取决于计算机指令系统复杂程度。如果有程度。如果有32条指令就要有条指令就要有5位操作码。一般说来,包含位操作码。一般说来,包含n位的操作码最多能够表示位的操作码最多能够表示2n条指令条指令按操作码的位数是否固定:按操作码的位数是否固定:固定长度的操作码:所有指令长固定长度的操作码:所有指令长度均相同。特点是控制简单,速度度均相同。特点是控制简单,速度快,适用于指令条数不多的场合。快,适用

13、于指令条数不多的场合。可变长度的操作码:频繁使用的可变长度的操作码:频繁使用的指令用位数较少的操作码,不常使指令用位数较少的操作码,不常使用的指令可利用操作码扩展技术进用的指令可利用操作码扩展技术进行扩展。行扩展。v指令助记符指令助记符 由于硬件只能识别由于硬件只能识别1 1和和0 0,并且为了便于存储,所以采用二,并且为了便于存储,所以采用二进制操作码是十分必要的,但是我们用二进制来书写程序却非进制操作码是十分必要的,但是我们用二进制来书写程序却非常麻烦。为了便于书写和阅读程序,每条指令通常用常麻烦。为了便于书写和阅读程序,每条指令通常用3 3个或个或4 4个个英文缩写字母来表示。这种缩写码

14、叫做指令助记符。英文缩写字母来表示。这种缩写码叫做指令助记符。 指令指令操作码操作码指令助记符指令助记符加法加法001ADDADD减法减法010SUBSUB传送传送000MOVMOV乘法乘法011MULMUL除法除法100DIVDIV跳转跳转101JMPJMP存数存数110STOSTO取数取数111LADLADv地址码地址码 根据一条指令中有几个操作数地址,可将该指令称为几根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。一般的操作数有操作数指令或几地址指令。一般的操作数有被操作数被操作数、操作操作数数及及操作结果操作结果这三种数,因而就形成了三地址指令格式。这三种数,因

15、而就形成了三地址指令格式。三地址指令三地址指令8 8 8 8 OP A1 A2 A3(A1) OP (A2) A3 其中操作数其中操作数A1、A2、A3可以是内存单元的地址,也可以可以是内存单元的地址,也可以是运算器中通用寄存器的地址,如果三地址指令中是运算器中通用寄存器的地址,如果三地址指令中A A1 1、A A2、A A3都是内存单元,则指令需要都是内存单元,则指令需要4次访问存储器,存储器的寻址范次访问存储器,存储器的寻址范围围28 = 256。为了提高指令执行的速度和扩大寻址范围出现了。为了提高指令执行的速度和扩大寻址范围出现了两地址指令和一地址指令。两地址指令和一地址指令。二地址指令

16、二地址指令 二地址指令常称为双操作数指令,它的两个地址码字段分二地址指令常称为双操作数指令,它的两个地址码字段分别指明参与操作的两个数在内存中或运算器中通用寄存器的地别指明参与操作的两个数在内存中或运算器中通用寄存器的地址,址,A1A1作存放操作结果的地址作存放操作结果的地址, ,称为称为目的操作数目的操作数(D)(D),A2A2称为源称为源操作数操作数(S)(S)。 OP A1 A28 12 12(A1) OP (A2) A1寻址范围寻址范围 212 = 4 K二地址指令格式中,从操作数的物理位置来说,又可归结为三种类型。二地址指令格式中,从操作数的物理位置来说,又可归结为三种类型。 存储器

17、存储器- -存储器(存储器(SSSS)型指令)型指令:操作数都放在内存里,因此机器执行这种指令操作数都放在内存里,因此机器执行这种指令需要多次访问内存。需要多次访问内存。 寄存器寄存器- -寄存器(寄存器(RRRR)型指令)型指令:操作数都在寄存器中。机器执行寄存器操作数都在寄存器中。机器执行寄存器- -寄存器寄存器型指令的速度很快,因为执行这类指令,不需要访问内存。型指令的速度很快,因为执行这类指令,不需要访问内存。 寄存器寄存器- -存储器(存储器(RSRS)型指令)型指令:执行此类指令时,既要访问内存单元,又要访执行此类指令时,既要访问内存单元,又要访问寄存器。问寄存器。一地址指令一地址

18、指令 一地址指令常称为单操作数指令。通常这种指令以运算器一地址指令常称为单操作数指令。通常这种指令以运算器中累加寄存器中累加寄存器ACAC中的数据为被操作数,指令字的地址码字段所中的数据为被操作数,指令字的地址码字段所指明的数为操作数,操作结果又放回累加寄存器指明的数为操作数,操作结果又放回累加寄存器ACAC中。中。 零地址指令零地址指令 零地址指令的指令字中只有操作码,而没有地址码。例如零地址指令的指令字中只有操作码,而没有地址码。例如停机指令就不需要地址码停机指令就不需要地址码 。因为停机指令不需要操作数。因为停机指令不需要操作数。OP A18 24 (AC) OP (A1) AC寻址范围

19、寻址范围 224 = 16 M OP v指令格式举例指令格式举例例:某例:某1616位机指令格式如下所示,其中位机指令格式如下所示,其中OPOP为操作码,试分析指为操作码,试分析指令格式的特点。令格式的特点。 单字长二地址指令。单字长二地址指令。操作码字段操作码字段OPOP可以指定可以指定128128条指令。条指令。 源寄存器和目标寄存器都是通用寄存器源寄存器和目标寄存器都是通用寄存器( (可分别指定可分别指定1616个个) ),所,所以是以是RRRR型指令,两个操作数均在寄存器中。型指令,两个操作数均在寄存器中。这种指令结构常用于算术逻辑运算类指令。这种指令结构常用于算术逻辑运算类指令。 O

20、POP-源寄存器源寄存器目的寄存器目的寄存器15 9 7 4 3 0000000011110A1A1A1A2A2A2A3A3A3A2A2A2A3A3A3111111111111000000011101111111111111111111111111111111111111000000011111111111111111111011101110A3A3A30000000111114 位操作码位操作码8 位操作码位操作码12 位操作码位操作码16 位操作码位操作码15条三地址指令条三地址指令14条二地址指令条二地址指令31条一地址指令条一地址指令16条零地址指令条零地址指令例:某例:某1616位机

21、单字长指令中有位机单字长指令中有1515条三地址指令、条三地址指令、1414条二地址指条二地址指令、令、3131条一地址指令、条一地址指令、1616条零地址指令,给出指令格式。条零地址指令,给出指令格式。111111111111111111111111A3A3A30000000111104.3 操作数类型操作数类型v一般的数据类型一般的数据类型 计算机内部处理的数据类型通常分为四类:计算机内部处理的数据类型通常分为四类:地址型数据:数据地址地址型数据:数据地址数值型数据:定点、浮点、十进制数等数值型数据:定点、浮点、十进制数等字符型数据:字符串字符型数据:字符串逻辑型数据:位逻辑型数据:位vP

22、entiumPentium数据类型数据类型vPowerPowerPCPC数据类型数据类型4.4 指令和数据的寻址方式指令和数据的寻址方式 存储器既可以存放指令,也可以存放操作数,如何确定下存储器既可以存放指令,也可以存放操作数,如何确定下一条欲执行指令的指令地址,称为一条欲执行指令的指令地址,称为指令寻址指令寻址,如何确定本条指,如何确定本条指令的操作数地址称为令的操作数地址称为操作数寻址操作数寻址。v 指令寻址指令寻址 顺序寻址顺序寻址 由于指令在内存中是顺序存放,当执行一段程序时,通常由于指令在内存中是顺序存放,当执行一段程序时,通常是一条指令接一条指令的顺序执行。是一条指令接一条指令的顺

23、序执行。 为了能够指示下一条为了能够指示下一条欲执行指令的指令地址,欲执行指令的指令地址,CPUCPU内部有内部有一个程序计数器一个程序计数器PC(PC(指令指针寄存器指令指针寄存器IP)IP),每执行一条指令其值,每执行一条指令其值自动加自动加1 1,指向下一条,指向下一条欲执行指令的指令地址。这种程序顺序欲执行指令的指令地址。这种程序顺序执行的过程我们称为指令的执行的过程我们称为指令的顺序寻址顺序寻址。 跳跃寻址方式跳跃寻址方式 当程序执行循环指令或者转移指令时,指令的寻址就采取当程序执行循环指令或者转移指令时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址不是由程序计跳跃寻址

24、方式。所谓跳跃,是指下条指令的地址不是由程序计数器给出,而是由本条指令给出。程序跳跃后,按新的指令地数器给出,而是由本条指令给出。程序跳跃后,按新的指令地址开始顺序执行。址开始顺序执行。 LAD 2000ADD 2001DEC 1200JMP 7LAD 2000SUB 2001INCSTO 2500LAD 1100.0123456789PC+1指令地址寻址方式指令地址寻址方式指令地址指令地址指令指令顺序寻址顺序寻址1顺序寻址顺序寻址2顺序寻址顺序寻址3跳跃寻址跳跃寻址7顺序寻址顺序寻址8v操作数的寻址方式操作数的寻址方式 形式地址形式地址是指令字中的地址,是指令字中的地址,有效地址有效地址是操

25、作数的内存地址,指令中是操作数的内存地址,指令中的地址码是由形式地址和寻址方式特征位等组合形成,因此一般来说,指的地址码是由形式地址和寻址方式特征位等组合形成,因此一般来说,指令中所给出的形式地址并不是操作数的有效地址。因此,寻址过程就是把令中所给出的形式地址并不是操作数的有效地址。因此,寻址过程就是把操作数的形式地址,变换为操作数的有效地址的过程。操作数的形式地址,变换为操作数的有效地址的过程。 立即数寻址立即数寻址 指令执行阶段不访存指令执行阶段不访存 D 的位数限制了立即数的范围的位数限制了立即数的范围 可正可负可正可负 ,补码表示,补码表示地址码部分的形式地址地址码部分的形式地址 D

26、就是操作数,而不是就是操作数,而不是操作数的地址操作数的地址 地址码地址码形式地址形式地址 D操作码操作码变址变址X X间址间址I I寻址特征寻址特征OP D寻址特征寻址特征立即数立即数直接内存寻址直接内存寻址 直接内存寻址特点是:在指令格式的形式地址字段直接内存寻址特点是:在指令格式的形式地址字段D D中直接指出操作数中直接指出操作数在内存的有效地址在内存的有效地址E E。由于操作数地址直接给出而不需要变换,称为直接寻。由于操作数地址直接给出而不需要变换,称为直接寻址方式。址方式。 采用直接寻址方式时,指令字中的形式地址采用直接寻址方式时,指令字中的形式地址D D就是操作数的有效地址就是操作

27、数的有效地址E E,既既E ED D。因此通常也把形式地址。因此通常也把形式地址D D又称为直接地址。如果又称为直接地址。如果S S表示操作数,那表示操作数,那么直接寻址的逻辑表达式为:么直接寻址的逻辑表达式为:S SEEDD操作数操作数主存主存寻址特征寻址特征OPDD 执行阶段访问一次存储器执行阶段访问一次存储器 D 的位数决定了该指令操作数的寻址范围的位数决定了该指令操作数的寻址范围 操作数的地址不易修改(必须修改操作数的地址不易修改(必须修改D)如果把直接寻址和间接寻址结合起来,指令有如下形式:如果把直接寻址和间接寻址结合起来,指令有如下形式: 寻址特征位寻址特征位I I0 0,表示直接

28、寻址,这时有效地址,表示直接寻址,这时有效地址E ED D;I I1 1,表示间,表示间接寻址,这时有效地址接寻址,这时有效地址E EDD。间接寻址间接寻址间接寻址的情况下,指令地址字段中的形式地址间接寻址的情况下,指令地址字段中的形式地址D D不是操作数的有效地不是操作数的有效地址,址,D D单元的内容才是操作数的有效地址。单元的内容才是操作数的有效地址。 形式地址形式地址 D操作码操作码 X IOPDDEA主存主存EA一次间址一次间址操作数操作数寻址特征寻址特征 执行指令阶段执行指令阶段 2 次访存次访存 可扩大寻址范围可扩大寻址范围 便于编制程序便于编制程序寄存器寻址方式寄存器寻址方式

29、当操作数不放在内存中,而是放在当操作数不放在内存中,而是放在CPUCPU的通用寄存器中时,的通用寄存器中时,可采用寄存器寻址方式。此时指令中给出的操作数地址不是内可采用寄存器寻址方式。此时指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号。存的地址单元号,而是通用寄存器的编号。OPRi寻址特征寻址特征操作数操作数R0RiRn寄存器寄存器 执行阶段只访问寄存器,执行速度快执行阶段只访问寄存器,执行速度快 寄存器个数有限,可缩短指令字长寄存器个数有限,可缩短指令字长寄存器间接寻址方式寄存器间接寻址方式 寄存器间接寻址方式与寄存器寻址方式的区别在于:指令中的操作数寄存器间接寻址方式与寄

30、存器寻址方式的区别在于:指令中的操作数地址指示出的寄存器中内容不是操作数,而是操作数的有效地址,即寄存地址指示出的寄存器中内容不是操作数,而是操作数的有效地址,即寄存器中是操作数的有效地址。器中是操作数的有效地址。操作数操作数主存主存OPRi寻址特征寻址特征地址地址R0RiRn寄存器寄存器 有效地址在寄存器中,有效地址在寄存器中,执行阶段访存执行阶段访存 便于编制循环程序便于编制循环程序1 1、相对寻址方式、相对寻址方式相对寻址是把程序计数器相对寻址是把程序计数器PCPC的内容加上指令格式中的形式地址的内容加上指令格式中的形式地址D D而形成而形成操作数的有效地址。程序计数器的内容就是当前指令

31、的地址操作数的有效地址。程序计数器的内容就是当前指令的地址. .形式地址形式地址D D通通常称为偏移量。常称为偏移量。“相对相对”寻址,就是相对于当前的指令地址进行浮动。寻址,就是相对于当前的指令地址进行浮动。 程序员无须用指令的绝对地址编程程序员无须用指令的绝对地址编程操作数操作数寻址特征寻址特征ALUOPD相对距离相对距离 D1000PC主存主存1000DOP D 的位数决定操作数的寻址范围的位数决定操作数的寻址范围 广泛用于转移指令广泛用于转移指令偏移寻址偏移寻址 2 2、基址寻址方式基址寻址方式 基址寻址方式是将基址寻址方式是将CPUCPU中基址寄存器的内容加上指令格式中基址寄存器的内

32、容加上指令格式中的形式地址而形成操作数的有效地址。中的形式地址而形成操作数的有效地址。 它的优点是可以扩大寻址能力。同形式地址相比,基址寄存器的位它的优点是可以扩大寻址能力。同形式地址相比,基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址。数可以设置得很长,从而可以在较大的存储空间中寻址。在程序的执行在程序的执行过程中过程中BRBR内容不变,由操作系统指定,形式地址内容不变,由操作系统指定,形式地址D D可变。可变。OPD操作数操作数主存主存寻址特征寻址特征ALUBR3 3、变址寻址方式变址寻址方式 变址寻址方式与基址寻址方式计算有效地址的方法十分相变址寻址方式与基址寻址方式计算

33、有效地址的方法十分相似,它把似,它把CPUCPU中某个变址寄存器的内容与形式地址中某个变址寄存器的内容与形式地址D D相加来形成相加来形成操作数有效地址。但使用变址寻址方式的目的不在于扩大寻址操作数有效地址。但使用变址寻址方式的目的不在于扩大寻址空间,而在于实现程序块的规律性变化。空间,而在于实现程序块的规律性变化。OPD操作数操作数主存主存寻址特征寻址特征ALUIX 便于处理数组问题便于处理数组问题 IX 的内容由用户给定的内容由用户给定 在程序的执行过程中在程序的执行过程中 IX 内容内容可变,形式地址可变,形式地址 D 不变不变堆栈寻址方式堆栈寻址方式 堆栈是一组能够存储和取出数据的暂时

34、存储单元,与存储堆栈是一组能够存储和取出数据的暂时存储单元,与存储器的基本功能一致,但堆栈在数据的存取方法和寻址方法上与器的基本功能一致,但堆栈在数据的存取方法和寻址方法上与存储器不同,存储器一般采用存储器不同,存储器一般采用随机存储方法随机存储方法,而堆栈采用,而堆栈采用先进先进后出的存储方法后出的存储方法,根据构成堆栈的基本单元的不同,计算机中,根据构成堆栈的基本单元的不同,计算机中的堆栈分为两类:的堆栈分为两类: 串连堆栈:构成堆栈的基本单元是串连堆栈:构成堆栈的基本单元是CPUCPU内的寄存器内的寄存器 存储器堆栈:构成堆栈的基本单元是主存单元存储器堆栈:构成堆栈的基本单元是主存单元1

35、)1)串联堆栈串联堆栈 一些计算机的一些计算机的CPU中有一组专门的寄存器,有中有一组专门的寄存器,有1616个或者更个或者更多,其中每一个寄存器能保存一个字的数据,由专用的寄存器多,其中每一个寄存器能保存一个字的数据,由专用的寄存器组构成堆栈的存储空间,我们称为组构成堆栈的存储空间,我们称为串联堆栈串联堆栈,专专用用寄寄存存器器组组堆栈空间堆栈空间某通用寄存器某通用寄存器1212入入栈栈过过程程45451267451267专专用用寄寄存存器器组组堆栈空间堆栈空间某通用寄存器某通用寄存器121245451267451267出出栈栈过过程程串联堆栈存在一些限制串联堆栈存在一些限制:l寄存器的数目

36、一般是有限的。如堆栈有寄存器的数目一般是有限的。如堆栈有6个寄存器,那么把多于个寄存器,那么把多于6个的数据个的数据压入堆栈时压入堆栈时,“老老”的数据就从栈底压出并被丢失。的数据就从栈底压出并被丢失。l是堆栈的读出是破坏性的。当从堆栈取出一个数时,它就不能再在堆栈中是堆栈的读出是破坏性的。当从堆栈取出一个数时,它就不能再在堆栈中存在。存在。 2)2)存储器堆栈存储器堆栈 在计算机中利用一部分主存储器来作为堆栈空间,称为在计算机中利用一部分主存储器来作为堆栈空间,称为存存储器堆栈储器堆栈。在存储器类型的堆栈中需要一个堆栈指示器。在存储器类型的堆栈中需要一个堆栈指示器SPSP,它,它是是CPU中

37、一个专用的寄存器。堆栈指示器中一个专用的寄存器。堆栈指示器SPSP指定的存储器单元指定的存储器单元就是堆栈的栈顶。就是堆栈的栈顶。 栈底栈底栈顶栈顶0000H0000HFFFFHFFFFH4141堆栈指针堆栈指针SPSPFFFFHFFFFH栈顶栈顶2323FFFEHFFFEH5757FFFDHFFFDHFFFCHFFFCH栈顶栈顶在内存中开辟一段存储单元在内存中开辟一段存储单元作为堆栈。设有通用寄存器作为堆栈。设有通用寄存器A A、B B、C C分别有数据分别有数据2323、5757、4141。执行下面的入栈和出栈操作执行下面的入栈和出栈操作指令:指令: PUSH APUSH A PUSH B

38、 PUSH B PUSH C PUSH C POP C POP C堆栈指针和堆栈变化如图堆栈指针和堆栈变化如图存储器堆栈的特点:存储器堆栈的特点:l存储器堆栈是一个由高地址向低地址延伸的空间。存储器堆栈是一个由高地址向低地址延伸的空间。l存储器堆栈的栈顶由堆栈指针存储器堆栈的栈顶由堆栈指针SPSP指示,如果用指示,如果用AA表示通用寄表示通用寄存器存器A A的内容,的内容,SPSP表示堆栈指示器,表示堆栈指示器,MspMsp表示堆栈指示的存储器表示堆栈指示的存储器栈顶单元栈顶单元, ,入栈操作和出栈操作可以表示为:入栈操作和出栈操作可以表示为: 入栈:入栈:AMsp AMsp ,SPSP1SP

39、1SP 出栈:出栈:SPSP1SP1SP,MspA MspA 存储器堆栈的优点:存储器堆栈的优点:l堆栈能够具有程序员要求的任意长度;堆栈能够具有程序员要求的任意长度;l存储器堆栈的数目由程序员自己决定;存储器堆栈的数目由程序员自己决定;l可以用对存储器寻址的任何一条指令来对堆栈中的数据进行可以用对存储器寻址的任何一条指令来对堆栈中的数据进行寻址。寻址。v寻址方式举例寻址方式举例例:一种二地址例:一种二地址RSRS型指令的结构如下所示:型指令的结构如下所示: 形式地址形式地址 D操作码操作码 X X I I寄存器寄存器6位位 4位位 1位位 2位位 16位位其中其中I I为间接寻址标志位,为间

40、接寻址标志位,X X为寻址模式字段,为寻址模式字段,D D为形式地址。通过为形式地址。通过I I,X X,D D的组合,可构成下表所示的寻址方式。的组合,可构成下表所示的寻址方式。 请写出六种寻址方式的名称。请写出六种寻址方式的名称。寻址方式寻址方式I IX X有效地址有效地址说明说明1 10 00000E=DE=D2 20 00101E=(PC)+DE=(PC)+DPCPC为程序计数器为程序计数器3 30 01010E=(IX)+DE=(IX)+DIXIX为变址寄存器为变址寄存器4 41 11111E=(R3)E=(R3)5 51 10000E=(D)E=(D)6 60 01111E=(BR

41、)+DE=(BR)+DBRBR为基址寄存器为基址寄存器直接内存寻址直接内存寻址相对寻址相对寻址变址寻址变址寻址寄存器间接寻址寄存器间接寻址内存间接寻址内存间接寻址基址寻址基址寻址例:某微机的指令格式如下所示:例:某微机的指令格式如下所示: 操作码操作码XDD:位移量:位移量X:寻址特征位:寻址特征位 X=00:直接寻址;:直接寻址; X=01:用基址寄存器:用基址寄存器BR进行变址;进行变址; X=10:用变址寄存器:用变址寄存器IX进行变址;进行变址; X=11:相对寻址:相对寻址设(设(PC)=1234 H,(,(BR)=0037H,(,(IX)=1122H,请确定下列指令,请确定下列指令

42、的有效地址。的有效地址。4420H 2244H 1322H 3521H1 1)X=00 , D=20H ,X=00 , D=20H ,有效地址有效地址E=20HE=20H2) X=10 , D=44H ,2) X=10 , D=44H ,有效地址有效地址E=1122H+44H=1166HE=1122H+44H=1166H3) X=11 , D=22H ,3) X=11 , D=22H ,有效地址有效地址E=1234H+22H=1256HE=1234H+22H=1256H4) X=01 , D=21H ,4) X=01 , D=21H ,有效地址有效地址E=0037H+21H=0058HE=00

43、37H+21H=0058H15 10 9 8 7 015 10 9 8 7 0例:某例:某1616位机器所使用的指令格式和寻址方式如下所示,该机有两个位机器所使用的指令格式和寻址方式如下所示,该机有两个2020位位基址寄存器,四个基址寄存器,四个1616位变址寄存器,十六个位变址寄存器,十六个1616位通用寄存器,指令汇编格位通用寄存器,指令汇编格式中的式中的S S和和D D都是指通用寄存器,都是指通用寄存器,M M指主存中的一个单元。三种指令的操作码指主存中的一个单元。三种指令的操作码分别是分别是MOVMOV为为0AH 0AH ,STOSTO为为1BH 1BH ,LADLAD为为3CH3CH

44、。说明:说明:MOVMOV是传送指令,是传送指令,STOSTO为写数指令,为写数指令,LADLAD为读数指令。为读数指令。(1)分析三种指令的指令格式与寻址方式特点)分析三种指令的指令格式与寻址方式特点。该指令是单字长二地址指令,是该指令是单字长二地址指令,是寄存器寄存器寄存器寄存器型,源寄存器型,源寄存器S S由由0 03 3位指位指定,目标寄存器定,目标寄存器D D由由4 47 7位指定。位指定。该指令是双字长二地址指令,是该指令是双字长二地址指令,是寄存器寄存器存储器存储器型,源寄存器型,源寄存器S S由由4 47 7位指位指定定,存储器存储器M M由由采用采用0 03 3位指定的变址寄

45、存器加位移量的位指定的变址寄存器加位移量的变址方式变址方式得到或者得到或者由由89位指定的基址寄存器加位移量的位指定的基址寄存器加位移量的基址寻址基址寻址得到。得到。该指令是双字长二地址指令,该指令是双字长二地址指令,寄存器寄存器存储器存储器型,其中目标寄存器型,其中目标寄存器D D由由4 47 7位指定,存储器由指令中给出的位指定,存储器由指令中给出的2020位地址由直接内存寻址决定。位地址由直接内存寻址决定。(2 2)CPUCPU完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?

46、种指令的执行时间有时会等于第三种指令的执行时间吗? CPUCPU完成第一种指令所花时间最短,因为是完成第一种指令所花时间最短,因为是RRRR型指令,不需要访问存储器型指令,不需要访问存储器 CPUCPU完成第二种指令所花时间最长,因为是完成第二种指令所花时间最长,因为是RSRS型指令需要访问存储器,同型指令需要访问存储器,同时要进行寻址方式的变换运算,基址寄存器的内容加位移量或变址寄存器时要进行寻址方式的变换运算,基址寄存器的内容加位移量或变址寄存器内容加位移量,这也需要时间。内容加位移量,这也需要时间。 第二种指令的执行时间不会等于第三种指令,因为第三种指令也访问存储器,但第二种指令的执行时

47、间不会等于第三种指令,因为第三种指令也访问存储器,但节省了求有效地址运算的时间开销。节省了求有效地址运算的时间开销。(3 3)下列情况下每个十六进制指令字分别代表什么操作?其中如果有编码)下列情况下每个十六进制指令字分别代表什么操作?其中如果有编码不正确,如何改正才能成为合法指令?不正确,如何改正才能成为合法指令? (F0F1) (F0F1)H H(3CD2)(3CD2)H H根据已知条件:根据已知条件: MOVMOV(OPOP)0AH0AH00 101000 1010 ST0 ST0(OPOP)1BH1BH01 101101 1011 LAD LAD(OPOP)3CH3CH11 110011

48、 11001111 0000 1111 0001 0011 1100 1101 00101111 0000 1111 0001 0011 1100 1101 0010111100 111100 0000 11111111 0001 0011 1100 1101 00100001 0011 1100 1101 0010 2856H2856H0010 1000 0101 01100010 1000 0101 0110编码正确,其含义是把主存编码正确,其含义是把主存(13CD2)H 地址单元的内容取至地址单元的内容取至15号寄存器号寄存器。001010001010 0000 0101 0101 01100110编码正确,含义是把编码正确,含义是把6号源寄存器的内容传送至号源寄存器的内容传送至5号目标寄存器。号目标寄存器。 6FD6H 6FD6H0110 1111 1101 01100110 1111 1101 0110011011011011 1111 1101 1101 01100110编码错误,可改正为编码错误,可改正为28D6

温馨提示

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

评论

0/150

提交评论