1、 源操作数地址(Source Operand Reference) 目的操作数地址(Result Operand Reference) 下一条指令的地址(Next Instruction Reference)大多数CPU的是以下一指令地址为隐含的(由程序计数器得到),源操作数和结果操作数存放位置包括: 主存或虚存 CPU寄存器 I/O设备机器指令格式,是机器指令用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成。操作码字段表征指令的操作特性与功能,而地址码字段通常指定参与操作的操作数的地址。计算机指令最主要的元素是操作码,它指明即将完成的操作、源操作数和目的操作数的引用方式,以及通常
2、隐式指明下一个指令的引用方式。操作码采用编码形式表示,CPU中有专门的电路来解释每个操作码。常用的指令格式中地址码有:三地址、二地址、单地址和零地址几种形式。从操作数的物理位置来说,又可归结为3种类型: 存储器存储器(SS)型指令 寄存器寄存器(RR)型指令 寄存器存储器(RS)型指令指令字长:一个指令字中包含二进制代码的位数,称为指令字长。常见指令字长有:单字长、半字长、双字长。使用多字长指令的目的:提供足够的地址位来解决访问内存任何单元的寻址问题。使用多字长指令的一个主要缺点是必须两次或多次访问内存以取出一整条指令。等长指令字结构:在一个指令系统中,如果各种指令字长是相等的,称为等长指令字
3、结构。变长指令字结构:如果各种指令字长随指令功能而异,比如有的指令是单字长指令,有的指令是双字长指令,就称为变长指令字结构。在指令集设计的最根本出发点中,最重要的方面包括有: 操作指令表(Operation Repertoire):应提供多少和什么样的操作,操作的复杂程度; 数据类型(Data Types):所支持的数据类型; 指令格式(Instruction Format):指令的(位)长度、地址数目、各个字段的大小等; 寄存器(Registers):能被指令访问的CPU寄存器数目以及它们的用途; 寻址方式(Addressing Mode):指定操作数地址的产生方式。8-1-3 指令和操作数
4、的寻址方式寻址方式:形成操作数或指令地址的方式,称为寻址方式。寻址方式主要分为两类: 指令的寻址方式:较为简单,种类少; 操作数的寻址方式:较复杂,种类多,很灵活。寻址方式的作用:增强指令的功能,缩短指令的长度,提高指令的执行速度,增加操作数存放的位置的灵活性等。指令的寻址方式: 顺序寻址方式:通过程序计数器; 跳跃寻址方式:通过跳转指令。形成操作数的有效地址的方法、称为操作数的寻址方式。有效地址(EA):操作数的真正存储位置。形式地址(A):也称偏移量,它是指令字结构中给定的地址量。寻址过程就是把操作数的形式地址(A),变换为操作数的有效地址(EA)的过程。常用的寻址方式有: 隐含寻址 立即
5、寻址 直接寻址 间接寻址 寄存器寻址 寄存器间接寻址 相对寻址 基址寻址 变址寻址 堆栈寻址8-1-4 RISC技术RISC是精简指令系统计算机的英文缩写,即Reduced Instruction Set Computer,与其对应的是CISC,即复杂指令系统计算机(Complex Instruction Set Computer)。RISC的主要特点: 选取使用频率较高的一些简单指令以及一些很有用但又不复杂的指令,让复杂指令的功能由频度高的简单指令的组合来实现。 指令长度固定,指令格式种类少,寻址方式种类少。 只有取数/存数(LOAD/STORE)指令访问存储器,其余指令的操作都在寄存器内完
6、成。 采用流水线技术,大部分指令在一个时钟周期内完成。采用超标量和超流水线技术,可使每条指令的平均执行时间小于一个时钟周期。 控制器采用组合逻辑控制,不用微程序控制。 CPU中有多个通用寄存器。 采用优化的编译程序。与CISC机相比,RISC机的主要优点可归纳如下: 充分利用VLSI芯片的面积; 提高计算机运算速度; 便于设计,可降低成本,提高可靠性; 有效支持高级语言程序8-2 典型例题解析1、假设某计算机字长32位,CPU有32个32位的通用寄存器,指令长度为单字长,指令操作码占6位。请问:(1)对于存储器直接寻址方式的R-S型指令,能直接寻址的最大主存空间是多少?(2)对于采用通用寄存器
7、作为基址寄存器的R-S型指令,则能直接寻址的最大主存空间是多少?解析:指令字长为32位,指令操作码部分占6位,32个通用寄存器,其编号为5位。(1)存储器直接寻址的R-S型指令的一个操作数在寄存器中,所以指令中有一个5位的寄存器编号,另外一个地址码是直接地址占:32-6-5=21位。所以,能直接寻址的最大主存空间是221字。(2)基址寻址的R-S型指令的一个操作数在寄存器中,另外一个操作数在基址寻址的内存单元中,因为采用通用寄存器作为基址寄存器,所以必须在指令中明显指出基址寄存器是哪个通用寄存器,所以基址寄存器的编号占5位,剩下的位数(32 6 - 5 5 = 6位)是位移量。通用寄存器的位数
8、是32位,所以基址寄存器中的基准地址位数是32位。一个32位的数加上一个6位的数,其结果还是一个32位的数。所以,能直接寻址的最大主存空间是232字。2、采用相对寻址方式的转移指令占两个字节,第一字节是操作码,第二字节是相对位移量(用补码表示)。CPU在执行指令时,每次CPU从存储器取出一个字节,并自动完成(PC)+1PC。假设执行到该转移指令时PC的内容为200AH,如果要求转移到2000H地址,则该转移指令第二字节的内容应为多少?(用十六进制表示)执行到该转移指令时PC的内容为200AH,那么CPU取出第一字节的操作码后,PC的内容为200BH,取出第二字节的位移量后,PC的内容为200C
9、H,然后执行该转移指令,计算转移目标地址。因为转移目标地址为2000H,所以,此时的位移量应该是2000 - 200C = - 0CH用补码表示为:100H - 0CH = F4H。3、设某指令系统的指令字是16位,每个地址码为6位。若二地址指令15条,一地址指令48条,则剩下的零地址指令最多有多少条?操作码按短到长进行扩展编码: 二地址指令: 一个地址码占6位,所以两个地址码占12位,剩下的操作码占 4位。共有16种编码,15条指令用掉15种编码(0000 1110),还剩一种编码(1111); 一地址指令: 高4位操作码是1111,最低6位是一个地址码,剩下的中间操作码还有6位。 可以有6
10、4种编码,指令条数是48,所以还剩16种编码未用。其操作码的编码 方式如下:11110000001111011111(32种编码分配给32条指令)11111000001111101111(16种编码分配给16条指令) 零地址指令: 零地址指令的高10位操作码的编码空间如下:11111100001111111111 高10位共有16种编码可用,再加上低6位的64种编码,一共可组合成16x64=1024种编码,可以分别分配给1024种指令。故,剩下的零地址指令最多有1024条。4、假设某指令的一个操作数采用一次间接寻址方式,指令中给出的地址码为2000H,地址为2000H的内存单元中的内容为300
11、0H,地址为3000H的内存单元的内容为4000H,而4000H单元的内容为5000H,则该操作数的有效地址是多少?该操作数的值是多少?操作数的有效地址应该是3000H;操作数的值应该是4000H。简要分析:一次间接寻址方式的指令中给出的地址码是一个间接地址,即:操作数地址的地址。所以,操作数的有效地址应该是地址码2000H中的内容,即:3000H;有效地址所指出的内存单元的内容是操作数本身,即:4000H是操作数。5、假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址三种格式。(1)设操作码固定,若零地址指令有P种,一地址指令有Q种,则二地址指令最多有几种?(2)采用扩
12、展操作码技术,若二地址指令有X种,零地址指令有Y种,则一地址指令最多有几种?(1)根据操作数地址码为6位,则二地址指令中操作码的位数为1666=4。这4位操作码可有24=16种操作。由于操作码固定,则除去了零地址指令P种,一地址指令Q种,剩下二地址指令最多有16PQ种。(2)采用扩展操作码技术,操作码位数可变,则二地址、一地址和零地址的操作码长度分别为4位、10位和16位。可见二地址指令操作码每减少一种,就可多构成26种一地址指令操作码;一地址指令操作码每减少一种,就可多构成26种零地址指令操作码。因二地址指令有X种,则一地址指令最多有(24X)26种。设一地址指令有M种,则零地址指令最多有(
13、24X)26M根据题中给出零地址指令有Y种,即Y(24X)26则一地址指令M(24X)26Y8-3 练习题一、选择题1、指令系统中采用不同寻址方式的目的主要是_。A. 实现存储程序和程序控制B. 缩短指令长度,扩大寻址空间,提高编程灵活性C. 可以直接访问外存D. 提供扩展操作码的可能并降低指令编码难度2、单地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个数常需采用_。A. 堆栈存储方式 B. 立即寻址方式 C. 隐含寻址方式 D. 间接寻址方式3、对某个寄存器中操作数的寻址方式称为_寻址。A. 直接 B. 间接 C. 寄存器 D. 寄存器间接4、寄存器间接寻址方式中,操
14、作数处在_。A. 通用寄存器 B. 主存单元 C. 程序计数器 D. 堆栈5、变址寻址方式中,操作数的有效地址等于_。A. 基值寄存器内容加上形式地址(位移量)B. 堆栈指示器内容加上形式地址C. 变址寄存器内容加上形式地址D. 程序计数器内容加上形式地址6、程序控制类指令的功能是_。A. 进行算术运算和逻辑运算B. 进行主存与CPU之间的数据传送C. 进行CPU与I/O设备之间的数据传送D. 改变程序执行的顺序7、运算型指令的寻址与转移性指令的寻址不同点在于_。A. 前者取操作数,后者决定程序转移地址B. 后者取操作数,前者决定程序转移地址C. 前者是短指令,后者是长指令D. 前者是长指令,
15、后者是短指令8、指令的寻址方式有顺序和跳跃两种方式,采用跳跃寻址方式,可以实现_。A. 堆栈寻址 B. 程序的条件转移C. 程序的无条件转移 D. 程序的条件转移或无条件转移9、下面描述汇编语言特性的句子中概念上有错误的句子是_。A. 对程序员的训练来说,需要硬件知识B. 汇编语言对机器的依赖性高C. 汇编语言的源程序通常比高级语言源程序短小D. 汇编语言编写的程序执行速度比高级语言快10、就取得操作数的速度而言,下列寻址方式中速度最快的是_,速度最慢的是_,不需要访存的寻址方式是_。A. 直接寻址 B. 立即寻址 C. 间接寻址11、下列说法中不正确的是_。A. 变址寻址时,有效数据存放在主
16、存中.B. 堆栈是先进后出的随机存储器C. 堆栈指针SP的内容表示当前堆栈内所存储的数据的个数D. 内存中指令的寻址和数据的寻址是交替进行的12、下列几项中,不符合RISC指令系统的特点是_。A. 指令长度固定,指令种类少B. 寻址方式种类尽量减少,指令功能尽可能强C. 增加寄存器的数目,以尽量减少访存次数D. 选取使用频率最高的一些简单指令,以及很有用但不复杂的指令13、下面关于RISC技术的描述中,正确的是_。A. 采用RISC技术后,计算机的体系结构有恢复到早期的饿比较简单的情况B. 为了实现兼容,新设计的RISC是从原来的CISC系统的指令系统中挑选一部分实现的C. RISC的主要目标
17、是减少指令数D. RISC设有乘.除法指令和浮点运算指令.14、位操作类指令的功能是_。A. 对CPU内部通用寄存器或主存某一单元任一位进行状态检测(0或1)B. 对CPU内部通用寄存器或主存某一单元任一位进行状态强置(0或1)C. 对CPU内部通用寄存器或主存某一单元任一位进行状态检测或强置D. 进行移位操作15、采用基址寻址可以扩大寻址范围,并且 。A. 基址寄存器内容由用户确定,在程序执行过程中不可变B. 基址寄存器内容由用户确定,在程序执行过程中可变C. 基址寄存器内容由操作系统确定,在程序执行过程中不可变D. 基址寄存器内容由操作系统确定,在程序执行过程中可变16、堆栈寻址方式时,设
18、A为累加器,SP为堆栈指针寄存器,Msp为SP所指向的栈顶单元,若进栈操作的动作顺序为(A)-Msp,(SP) - 1 - SP,则出栈操作的动作顺序为 。A. (Msp)- A,(SP) + 1 - SPB. (SP) + 1 - SP,(Msp)- AC. (SP) - 1 -D. (Msp)- A,(SP) - 1 -17、设变址寄存器为X,形式地址为D,某机器具有先变址再间址的寻址方式,则这种寻址方式的有效地址为 。A. EA = (X) + D B. EA = (X) + (D)C. EA = (X) + D) D. EA = (X + (D)18、扩展操作码是 。A. 操作码字段以
19、外的辅助操作字段的代码B. 指令格式中不同字段设置的操作码C. 一种指令优化技术,即让操作码的长度随地址数的减少而增加,不同地址数的指令可以具有不同的操作码长度。D. 指扩大操作码字段的位数19、设相对寻址的转移指令占两个字节,第一字节为操作码,第二字节为相对偏移量(补码表示),若CPU每当从存储器取出一个字节,则PC自动加1,设当前PC的内容为2000H,如果需要转移到2008H地址,则该转移指令的第二字节的内容为 。A.08H B.06H C.0AH D.04H20、下列叙述中, 能够反映CISC的特征。A. 丰富的寻址方式 B. 控制器采用组合逻辑设计 C. 指令字长固定D. 大多数指令
20、需要多个时钟周期才能执行完成 E. 各种指令都能访存F. 只有LOAD/STORE指令可以访存 G. 采用优化编译技术21、指令格式设计中,采用扩展操作码的目的是 。A. 增加指令长度 B. 增加寻址空间 C. 增加指令数量 D. 缩短指令长度22、某机器字长16位,存储器按字编址,CPU读取一条单字长指令后,PC自动加 。A. 1 B. 2 C. 3 D. 423、某机器字长16位,存储器按字节编址,CPU读取一条单字长指令后,PC自动加 。24、某机器字长16位,存储器按字节编址,设PC当前值为1000H,当CPU读取一条双字长指令后,PC的值为 。A. 1001H B. 1002H C.
21、 1003H D. 1004H25、指令操作所需的数据不可能来自 。A. 指令本身 B. 寄存器 C. 存储器 D. 控制存储器26、对于单地址指令格式,下列描述正确的是 。A. 仅有一个操作数,其地址由指令的地址码提供B. 可能有一个操作数,有可能有两个操作数C. 有两个操作数,另一个是隐含的D. 有一个隐含的操作数27、 对实现程序浮动提供了良好支持。A. 间接寻址 B. 变址寻址 C. 相对寻址 D. 基址寻址28、 便于处理数组问题。29、 有利于编写循环程序A. 寄存器寻址 B. 变址寻址 C. 相对寻址 D. 基址寻址30、子程序调用指令的功能是 。A. 改变PC的值 B. 改变地
22、址寄存器的值C. 堆栈指针寄存器SP的值 D. 改变PC的值和堆栈指针寄存器SP的值二、填空题1、形成指令地址的方式,称为_方式,有_寻址和_寻址两种,使用_来跟踪指令地址。2、形式操作数地址的方式,称为_方式,操作数可放在_寄存器、_寄存器、_和_中。3、堆栈是一种特殊的_寻址方式,它采用_原理。按结构不同分为_堆栈和_堆栈4、隐含寻址是指令格式中不明确给出_。而是隐含指定,通常以_作为隐含地址。立即寻址是指令的地址字段指出的不是_,而是_。5、变址寻址和基值寻址的区别是:基值寻址中基值寄存器提供_,指令提供_,后者位数_。而变址寻址中变址寄存器提供_,指令提供_,后者位数_。6、指令字段长
23、度等于机器字长度的指令称为_;指令字长度等于半个机器字长度的指令称为_;指令字长度等于两个机器字长度的指令称为_。7、计算机的低级语言分为_和_,这两种语言都是面向_的语言。高级语言的语句和用法与具体机器的_无关。8、设D为指令中的形式地址,I为基址寄存器,PC为程序计数器。若有效地址E=(PC)+D),则为_寻址方式;若有效地址E=(D),则为_寻址方式;若E=(I)+D,则为_寻址方式;若为直接寻址,则有效地址为_。9、在寄存器间接寻址方式中,有效地址存放在_中,而操作数存放在_中。10、根据操作数所在的位置,指出其寻址方式:操作数在寄存器中,为_寻址;操作数地址在寄存器中,为_寻址;操作
24、数在指令中,为_寻址;操作数的主存地址在指令中,为_寻址;操作数的地址为某一寄存器的内容与指令中的位移量之和,可以是_寻址、_寻址、_寻址。11、指令系统是表征一台计算机性能的重要因素,它的_和_不仅直接影响到机器的硬件结构,而且影响到_。12、指令字中的地址码字段(形式地址)有不同含义,它是通过 体现的,因为通过某种方式的变换,可以获得 地址。常用的指令地址格式有 、 、 和 四种。13、二地址指令格式中,操作数的物理位置有三种形式,即 型、 型和 型。14、把两种寻址方式相结合就形成了复合寻址方式,如把 和 相结合可以形成 和 两种复合寻址方式。15、条件转移、无条件转移、子程序调用指令、
25、中断返回指令都属于 类指令,这种指令字的地址码字段指出的不是 的地址,而是 的地址。16、某机器指令系统可完成98种操作,指令字长为16位,操作码长度固定。若该指令系统有六种寻址方式,若要保证最大范围内直接寻址的话,则操作码占 位,寻址特征占 位,形式地址占 位,一次间址的范围是 。17、某机器采用三地址格式指令,共能完成50种操作,若机器在1K范围内直接寻址,则指令字长至少应该为 位,其中操作码占 位,地址码占 位。18、RISC指令系统选取使用频度较高的一些 指令,复杂指令的功能由 指令的组合来实现。其指令长度 ,指令格式种类 ,寻址方式种类 ,只有 指令可以访存,其余指令操作均在寄存器之
26、间进行,且采用 技术,大部分指令用一个机器周期完成。19、某机器有156条指令,采用单地址格式,则指令字最少需取 位才能直接寻址64K个存储单元。完成一条这种格式的加法指令,需要访存 次。20、在指令的执行阶段,需要访存两次的指令通常采用了 寻址。三、综合应用题1、指令格式结构如下所示,试分析指令格式及寻址方式特点。15 109 54 0OP目标寄存器源寄存器2、指令格式结构如下所示,试分析指令格式及寻址方式特点。7 43 0变址寄存器位移量(16位)3、指令格式结构如下所示,试分析指令格式及寻址方式特点。31 26 25 2423 2019 0I20位地址4、某机的16位单字长访内指令格式如下:4218MXA其中,A为形式地址,补码表示(其中一位符号位);I为直接/间接寻址方式:I=0为直接寻址方式;M为寻址模式:0为绝对寻址,1为基地址寻址,2位相对寻址,3为立即寻址;X为变址寻址。设PC、 Rz、Rb分别为指令计数器、变址寄存器,基地址寄存器,E为有效地址,试解答如下问题:(1)该指令格式能定义多少种不同的操作?立即寻址操作书的范围是多少?(2)在非间址情况下,写出各计算有效地址的表达式。(3)设基值寄存器14位,在非变址直接基地寻址时,确定存
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1