




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章 指令系统 n 指令系统历来都是考试的常考点指令系统历来都是考试的常考点n本章要求:n 1. 简单了解指令系统的发展和性能要求;n 2. 掌握指令的一般格式;n 3. 掌握寻址方式,指令分类和功能;n 4. 能熟练分析指令系统模型和设计简单要求的指令系统。 指令概述指令概述 用计算机解题时,一般都要编制程序,程序既可用高级语言编写,亦可用计算机解题时,一般都要编制程序,程序既可用高级语言编写,亦可用机器语言编写;用机器语言编写; 但计算机只能够识别和执行用但计算机只能够识别和执行用机器语言机器语言编写的程序;编写的程序; 各种高级语言编写的应用程序,最终都要翻译成机器语言来执行。各种高级
2、语言编写的应用程序,最终都要翻译成机器语言来执行。 机器语言是由一系列的指令(语句)组成的;机器语言是由一系列的指令(语句)组成的; 指令的格式就是机器语言的语法;指令的格式就是机器语言的语法; 每条指令每条指令。 一台计算机的所有的一台计算机的所有的或指令集。它是程序或指令集。它是程序工作者编制程序的基本依据,也是进行计算机逻辑设计的基本依据工作者编制程序的基本依据,也是进行计算机逻辑设计的基本依据 。4.1 指令系统的发展与性能要求指令系统的发展与性能要求一条指令应包含如下信息:一条指令应包含如下信息: 进行何种操作进行何种操作:即操作性质。即操作性质。 体现在指令中被称为体现在指令中被称
3、为操作码操作码。 操作的对象操作的对象: 数据来源以及如何寻找操作数。数据来源以及如何寻找操作数。 体现在指令中被称为体现在指令中被称为 操作结果操作结果:结果存放在何处。结果存放在何处。 下一条指令又如何寻找下一条指令又如何寻找: : 一般由一般由PC(PC(程序计数器)指示。程序计数器)指示。4.2 指令格式指令格式 指令由指令由操作码操作码和和地址码地址码两部分组成,它的基本格式如下:两部分组成,它的基本格式如下: 操作码是说明指令操作性质的二进制数代码。操作码是说明指令操作性质的二进制数代码。 操作码位长(即所占的二进制位数)决定了一台计算机所能允许的指操作码位长(即所占的二进制位数)
4、决定了一台计算机所能允许的指令条数。令条数。 【例】【例】:操作码位长:操作码位长=6=6位(占用六位二进制码)时,这台计算机最多位(占用六位二进制码)时,这台计算机最多允许有:允许有: 2 26 664 64 条指令条指令1.1.操作码操作码操作码字段地址码字段 (1) 固定长度操作码固定长度操作码 固定长度操作码是指操作码所占的二进制位数固定不变,而且集固定长度操作码是指操作码所占的二进制位数固定不变,而且集中放在指令字的一个字段中。中放在指令字的一个字段中。 这种格式有利于简化硬件设计,减少指令译码时间,广泛用于字这种格式有利于简化硬件设计,减少指令译码时间,广泛用于字长较长的大、中型计
5、算机和超级小型计算机中。长较长的大、中型计算机和超级小型计算机中。 (2) 可变长度操作码可变长度操作码 可变长度操作码是操作码扩展技术的应用,即操作码的长度是可可变长度操作码是操作码扩展技术的应用,即操作码的长度是可变的,且分散地放在指令的不同字段中。这种格式有利于压缩程序中变的,且分散地放在指令的不同字段中。这种格式有利于压缩程序中操作码的平均长度,在字长较短的微型机中被广泛应用。操作码的平均长度,在字长较短的微型机中被广泛应用。操作码字段分两种操作码字段分两种: 扩展操作码的安排。扩展操作码的安排。 这是一个这是一个16位字长的指令码,包括位字长的指令码,包括4位基本操作码字段和三位基本
6、操作码字段和三个个4位长的地址字段。位长的地址字段。4位基本操作码,若全部用于三地址指令位基本操作码,若全部用于三地址指令,则有,则有16条。条。 显然,显然,4位基本操作码是不够的,必须向地址码字段扩展操位基本操作码是不够的,必须向地址码字段扩展操作码的长度。其扩展方法及步骤如下:作码的长度。其扩展方法及步骤如下: OP A1 A2 A3 4位位 4位位 4位位 4位位(3) 扩展操作码技术操作码的位数随地址数的减少而增加OP A1 A2 A3000000011110A1A1A1A2A2A2A3A3A3A2A2A2A3A3A3111111111111000000011110111111111
7、111111111111111111111111111000000011111111111111111111111111111A3A3A30000000111104 位操作码8 位操作码12 位操作码16 位操作码最多15条三地址指令最多15条二地址指令最多15条一地址指令16条零地址指令(3) 扩展操作码技术操作码的位数随地址数的减少而增加OP A1 A2 A3000000011110A1A1A1A2A2A2A3A3A3A2A2A2A3A3A3111111111111000000011110111111111111111111111111111111111111000000011111111
8、111111111111111111111A3A3A30000000111104 位操作码8 位操作码12 位操作码16 位操作码三地址指令操作码每减少一种可多构成24 种二地址指令二地址指令操作码每减少一种可多构成24 种一地址指令 上述方法是在上述方法是在不增加指令长度不增加指令长度的情况下,采用对地址少的情况下,采用对地址少的指令使用较长的操作码,对地址数多的指令使用较短的操的指令使用较长的操作码,对地址数多的指令使用较短的操作码。其实质是增加了指令的数量,丰富了指令的功能。作码。其实质是增加了指令的数量,丰富了指令的功能。 在可变长操作码的指令系统设计中,究竟使用何种扩展在可变长操作码
9、的指令系统设计中,究竟使用何种扩展方法为好,指令的方法为好,指令的使用频度使用频度(即在程序中出现的概率)是非(即在程序中出现的概率)是非常重要的依据。即常重要的依据。即频度高的指令应分配短的操作码,频度低频度高的指令应分配短的操作码,频度低的指令则分配较长的操作码。的指令则分配较长的操作码。这样,既可有效地缩短操作码这样,既可有效地缩短操作码在程序中的平均长度,节省存储空间,又可缩短常用指令的在程序中的平均长度,节省存储空间,又可缩短常用指令的译码时间以提高程序的运行速度。译码时间以提高程序的运行速度。 其其缺点缺点是译码系统比固定操作码复杂,增加了设计控制是译码系统比固定操作码复杂,增加了
10、设计控制器的难度,需要更多的硬件作支持。器的难度,需要更多的硬件作支持。 指令中的地址码用来指出该指令的指令中的地址码用来指出该指令的源操作数地址源操作数地址( (一个或两个一个或两个) )、结果结果地址地址及及下一条指令的地址下一条指令的地址。 这里的地址可以是这里的地址可以是主存地址主存地址,也可以是,也可以是寄存器地址寄存器地址,甚至可以是,甚至可以是I/OI/O设备的地址设备的地址。2.2.地址码地址码 按地址码的多少,指令一般可以分为(固定操作码长):按地址码的多少,指令一般可以分为(固定操作码长): 三地址指令 二地址指令 一地址指令 零地址指令 操作码操作码 A操作码操作码操作码
11、操作码A1 A2操作码操作码 A1 A2 A3(1) 三地址指令三地址指令指令格式:指令格式: OP A1 A2 A3 三地址指令中各项含义与四地址指令相同。由于采用了三地址指令中各项含义与四地址指令相同。由于采用了指令计数器指令计数器 (又称程序计数器,简称(又称程序计数器,简称PCPC),省去了),省去了A A4 4地址地址; 如果指令字长不变如果指令字长不变(32(32位位) ),操作码仍为,操作码仍为8 8位,故位,故三地址三地址指令直接寻址范围可达:指令直接寻址范围可达: 2 28 8=256=256 若地址字段均为主存地址,则完成一条三地址指令也若地址字段均为主存地址,则完成一条三
12、地址指令也需四次访问存储器。需四次访问存储器。 OP:操作码;:操作码; A1:既作第一操作数地址:既作第一操作数地址 A2:第二操作数地址:第二操作数地址 A3:目的地址:目的地址 操作:(操作:(A1) OP(A2) A3 OP:操作码;:操作码; A1:既作第一操作数地址,又作目的地址;:既作第一操作数地址,又作目的地址; A2:第二操作数地址。:第二操作数地址。 操作:(操作:(A1) OP(A2) A1(2) 二地址指令二地址指令指令格式:指令格式: OP A1 A2 有的机器也表示有的机器也表示(A1) OP(A2) A2, A2既作第一操作既作第一操作数地址,又作目的地址;数地址
13、,又作目的地址; 在不改变字长和操作码位数的前提下,二地址指令可直接在不改变字长和操作码位数的前提下,二地址指令可直接访问的主存地址数为:访问的主存地址数为: 212=4K 指令中只给出一个操作数地址,另一个操作数地址和目的指令中只给出一个操作数地址,另一个操作数地址和目的地址则是地址则是隐含隐含的。这个隐含的地址就是运算器的累加寄存器的。这个隐含的地址就是运算器的累加寄存器AC。(3) 一地址指令一地址指令 OP A指令格式:指令格式:操作:(操作:(AC)OP(A) AC 在不改变字长和操作码位数的前提下,二地址指令可直接访在不改变字长和操作码位数的前提下,二地址指令可直接访问的主存地址数
14、为:问的主存地址数为: 224 = 16M 完成一条指令只需完成一条指令只需两次访存两次访存; 没有操作数地址的指令称为零地址指令。没有操作数地址的指令称为零地址指令。 执行零地址指令时,被运算的操作数地址执行零地址指令时,被运算的操作数地址全部是隐含全部是隐含的,的,指令格式中只说明作什么操作。指令格式中只说明作什么操作。 如停机指令就是零地址指令。如停机指令就是零地址指令。(4) 零地址指令零地址指令指令类型划分 在二地址指令格式中,根据指令中源操作数所处位置的不同,可分为三种类型:n寄存器寄存器(RR)型 两个源操作数均来自于通用寄存器;n寄存器存储器(RS)型 一个源操作数来自于通用寄
15、存器,另一个操作数来自于主存单元;n存储器存储器(SS)型 两个源操作数均来自于主存单元。 3.3.指令字长度与机器字长度的关系指令字长度与机器字长度的关系 机器字长度机器字长度简称简称字长字长,指计算机能直接处理的二进制数,指计算机能直接处理的二进制数据的位数。据的位数。 字长字长是计算机中的一项重要技术指标,字长越长,计算是计算机中的一项重要技术指标,字长越长,计算机的机的运算精度运算精度越高;越高; 字长还能反映指令的字长还能反映指令的直接寻址直接寻址能力,若字长能力,若字长n n位全用来位全用来寻址,可直接寻址寻址,可直接寻址2 2n n个字节。个字节。 为了便于处理字符数据及尽可能地
16、利用存储空间,为了便于处理字符数据及尽可能地利用存储空间,一般一般把机器字长定为字节长度(把机器字长定为字节长度(8 8位)的整数倍位)的整数倍,即是,即是8 8位、位、1616位、位、 32 32位或位或6464位。位。 微型、小型机的字长多为微型、小型机的字长多为8 8位、位、1616位位、3232位等,中、大位等,中、大型机的字长多为型机的字长多为3232位和位和6464位。因此,一个字中可以存储位。因此,一个字中可以存储1 1个个、2 2个、个、4 4个或个或8 8个字符。个字符。(1) (1) 机器字长机器字长 指令字的长度指令字的长度取决于操作码的长度、操作数地址的长度取决于操作码
17、的长度、操作数地址的长度和操作数地址的个数。和操作数地址的个数。 由于操作码的长度、操作数地址的长度以及所采用操作由于操作码的长度、操作数地址的长度以及所采用操作数地址数目不同,各种指令的长度不是固定的,当然也不是数地址数目不同,各种指令的长度不是固定的,当然也不是任意的。任意的。 为了充分利用存储空间,为了充分利用存储空间,指令字的长度也定为字节长度指令字的长度也定为字节长度的整数倍的整数倍。(2) (2) 指令字长指令字长(3) (3) 指令字长与机器字长的关系指令字长与机器字长的关系 指令字长度与机器字长度指令字长度与机器字长度没有固定的关系没有固定的关系,它可以等于机,它可以等于机器字
18、长,也可以大于或小于机器字长。器字长,也可以大于或小于机器字长。 指令字长度等于机器字长度的指令,称为指令字长度等于机器字长度的指令,称为单字长指令单字长指令;指;指令字长等于两个机器字长的指令,称为令字长等于两个机器字长的指令,称为双字长指令双字长指令; 指令字指令字长度只有半个机器字长度的指令,称为半字长指令。长度只有半个机器字长度的指令,称为半字长指令。 等字长指令结构等字长指令结构 在同一个指令系统中,在同一个指令系统中,所有的指令字长度都是相等所有的指令字长度都是相等的的,称为等字长指令字结构,称为等字长指令字结构, 这种指令字结构简单,控制方这种指令字结构简单,控制方便;便; 变字
19、长指令结构变字长指令结构 如果各种如果各种指令字长度随指令的功能而变化指令字长度随指令的功能而变化,如有的指,如有的指令是单字长指令,有的指令是双字长指令或三字长指令,令是单字长指令,有的指令是双字长指令或三字长指令,则称为变字长指令结构,这种指令字结构灵活,能充分利则称为变字长指令结构,这种指令字结构灵活,能充分利用指令字长度,但指令的控制较复杂。用指令字长度,但指令的控制较复杂。【例】【例】 某指令系统采用定长的指令格式,设指令字长为某指令系统采用定长的指令格式,设指令字长为16位,每个地址码的位,每个地址码的长度为长度为6位,指令分为二地址指令、一地址指令和零地址指令三类。若二地址位,指
20、令分为二地址指令、一地址指令和零地址指令三类。若二地址指令为指令为K种,零地址指令为种,零地址指令为L种,问一地址指令最多能设计多少种?种,问一地址指令最多能设计多少种? 【解】【解】:画出三类指令的指令格式如图所示。:画出三类指令的指令格式如图所示。 设一地址指令为设一地址指令为X种,根据题意,有:种,根据题意,有: L (24-K)26-X)26 X210-K26-L2-6 所以,一地址指令最多能设计所以,一地址指令最多能设计210-K26-L2-6种。种。 4 4位位6 6位位6 6位位二地址指令:二地址指令:OPOPA A1 1A A2 2K种1010位位6 6位位一地址指令:一地址指
21、令:OPOPA AX种1616位位零地址指令:零地址指令:OPOPL种4.4.指令助记符指令助记符 由于硬件只能识别由于硬件只能识别1 1和和0 0,所以采用二进制操作码是必要,所以采用二进制操作码是必要的,但是我们用二进制来书写程序却非常麻烦。的,但是我们用二进制来书写程序却非常麻烦。 为了便于书写和阅读程序,每条指令通常用为了便于书写和阅读程序,每条指令通常用3 3个或个或4 4个英个英文缩写字母来表示。这种缩写码叫做文缩写字母来表示。这种缩写码叫做指令助记符。指令助记符。典典 型型 指指 令令指令助记符指令助记符二进制操作码二进制操作码加法加法ADD001减法减法SUB010传送传送MO
22、V011跳转跳转JMP100转子转子JSR101存储存储STR110读数读数LDA111典型的指令助记符典型的指令助记符5.5.指令格式举例指令格式举例八位微型计算机的指令格式八位微型计算机的指令格式 8 8位微型机字长只有位微型机字长只有8 8位,指令结构是一种可变字长形式位,指令结构是一种可变字长形式,包含单字长、双字长、三字长指令等多种。,包含单字长、双字长、三字长指令等多种。单字长指令单字长指令 操作码操作码双字长指令双字长指令 操作码操作码 操作数地址操作数地址三字长指令三字长指令 操作码操作码 操作数地址操作数地址1 操作数地址操作数地址2 内存按字节编址,所以单字长指令每执行一条
23、指令后,内存按字节编址,所以单字长指令每执行一条指令后,指令地址加。双字长指令或三字长指令每执行一条指令时指令地址加。双字长指令或三字长指令每执行一条指令时,指令地址要加,指令地址要加2 2或加或加3 3,可见多字长的指令格式不利于提高,可见多字长的指令格式不利于提高机器速度。机器速度。4.3 指令和数据寻址方式指令和数据寻址方式 存储器既可以存放数据又可以存放指令。因此当某个操存储器既可以存放数据又可以存放指令。因此当某个操作数或某条指令存放在某个存储单元时,其存储单元的编号作数或某条指令存放在某个存储单元时,其存储单元的编号,就是该操作数或指令在存储器中的地址。,就是该操作数或指令在存储器
24、中的地址。 在存储器中,操作数或指令字写入或读出的方式,有在存储器中,操作数或指令字写入或读出的方式,有地址地址指定方式指定方式、相联存储方式相联存储方式和和堆栈存取方式堆栈存取方式。 几乎所有的计算机,在内存中都采用地址指定方式几乎所有的计算机,在内存中都采用地址指定方式 当采用地址指定方式时,形成操作数或指令地址的方式,当采用地址指定方式时,形成操作数或指令地址的方式,称为称为寻址方式寻址方式。 寻址方式分为两类,即寻址方式分为两类,即指令寻址方式指令寻址方式和和数据寻址方式数据寻址方式,前,前者比较简单,后者比较复杂。者比较简单,后者比较复杂。1.1.指令的寻址方式指令的寻址方式 指令的
25、寻址方式有两种,一种是指令的寻址方式有两种,一种是顺序寻址方式顺序寻址方式,另一种,另一种是是跳跃跳跃( (转移转移) )寻址方式寻址方式。(1) (1) 顺序寻址方式顺序寻址方式 指令地址在内存中按顺序安排,当执行一段程序时,通指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令的顺序执行。常是一条指令接一条指令的顺序执行。 从存储器取出第一条指令,然后执行这条指令;接着从从存储器取出第一条指令,然后执行这条指令;接着从存储器取出第二条指令,再执行第二条指令;接着再取出第存储器取出第二条指令,再执行第二条指令;接着再取出第三条指令三条指令这种程序顺序执行的过程,我们称为指令
26、的顺这种程序顺序执行的过程,我们称为指令的顺序寻址方式。序寻址方式。 为此,必须使用程序计数器(又称指令指针寄存器)为此,必须使用程序计数器(又称指令指针寄存器)PC来计数指令的顺序号,该顺序号就是指令在内存中的地来计数指令的顺序号,该顺序号就是指令在内存中的地址。址。(2) (2) 转移寻址方式转移寻址方式 当程序转移执行的顺序时,指令的寻址就采取转移寻址当程序转移执行的顺序时,指令的寻址就采取转移寻址方式。方式。 所谓转移,是指下条指令的地址码不是由程序计数器给所谓转移,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。程序转移后,按新的指令地址开出,而是由本条指令给出。程序转
27、移后,按新的指令地址开始顺序执行。指令计数器的内容也必须相应改变,以便及时始顺序执行。指令计数器的内容也必须相应改变,以便及时跟踪新的指令地址。跟踪新的指令地址。 采用指令转移寻址方式,可以实现程序转移或构成循环采用指令转移寻址方式,可以实现程序转移或构成循环程序,从而能缩短程序长度,或将某些程序作为公共程序引程序,从而能缩短程序长度,或将某些程序作为公共程序引用。指令系统中的各种条件转移或无条件转移指令,就是为用。指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的转移寻址而设置的。了实现指令的转移寻址而设置的。32.2.操作数的寻址方式操作数的寻址方式 操作数的寻址就是寻找操作数的
28、地址,其目的是寻找所需操作数的寻址就是寻找操作数的地址,其目的是寻找所需要的操作数。要的操作数。 寻址方式就是指寻找操作数地址所用的方法,它与计算机寻址方式就是指寻找操作数地址所用的方法,它与计算机的硬件结构密切相关,对指令的格式和功能都有极大的影响的硬件结构密切相关,对指令的格式和功能都有极大的影响。从使用的观点来看,寻址方式和汇编语言程序设计的关系。从使用的观点来看,寻址方式和汇编语言程序设计的关系更加密切。更加密切。 由于各种计算机的硬件结构各不相同,指令格式亦多种多由于各种计算机的硬件结构各不相同,指令格式亦多种多样,因而,寻址方式也就千差万别,这里仅对常见的单操作样,因而,寻址方式也
29、就千差万别,这里仅对常见的单操作数地址的寻址方式作介绍。用这些最基本的寻址方式可以组数地址的寻址方式作介绍。用这些最基本的寻址方式可以组合成各类计算机中更为复杂的寻址方式。合成各类计算机中更为复杂的寻址方式。一种单地址指令的一般结构一种单地址指令的一般结构 指令中操作数字段的地址码是由形式地址和寻址方式特征指令中操作数字段的地址码是由形式地址和寻址方式特征位等组合形成;位等组合形成; 一般来说一般来说,指令中所给出的地址码指令中所给出的地址码,并不是操作数的有效地并不是操作数的有效地址。址。 因此寻址过程就是把操作数的形式地址,变换为操作数的因此寻址过程就是把操作数的形式地址,变换为操作数的有
30、效地址的过程。有效地址的过程。 寻址方式寻址方式 操作码操作码OP 变址变址X 间址间址I形式地址形式地址A 在指令中不明显地给出操作数的地址,其操作数或操作数在指令中不明显地给出操作数的地址,其操作数或操作数的地址隐含在某个通用寄存器中或指定的存储单元中。的地址隐含在某个通用寄存器中或指定的存储单元中。 例如例如: 单地址的指令格式,没有在地址字段中指明第二操作单地址的指令格式,没有在地址字段中指明第二操作数地址,而是规定累加寄存器数地址,而是规定累加寄存器AC作为第二操作数地址,作为第二操作数地址,AC对对单地址指令格式来说是隐含地址。单地址指令格式来说是隐含地址。 这种方式可以缩短指令的
31、长度,在字长较短的微型机或这种方式可以缩短指令的长度,在字长较短的微型机或小型机中被广泛采用。小型机中被广泛采用。(1) (1) 隐含寻址隐含寻址 3. 隐含寻址操作数地址隐含在操作码中ADDA操作数主存寻址特征AACC暂存ALU另一个操作数隐含在 ACC 中(2) (2) 立即寻址立即寻址 所需的操作数由指令的直接给出,称为立即数寻址方所需的操作数由指令的直接给出,称为立即数寻址方式,简称立即寻址。式,简称立即寻址。 OP # D立即寻址特征立即寻址特征立即数立即数这种方式的特点是:这种方式的特点是: 取指令时将操作码和一个操作数同时取出,不必再次取指令时将操作码和一个操作数同时取出,不必再
32、次访问存储器。提高了指令的执行速度,但操作数只是指令访问存储器。提高了指令的执行速度,但操作数只是指令的一部分,其数值受到了限制。的一部分,其数值受到了限制。(3) (3) 寄存器直接寻址方式寄存器直接寻址方式 如果指令的地址码部分给出的是如果指令的地址码部分给出的是某通用寄存器编号某通用寄存器编号Ri,Ri寄存器中存放着操作数,则称为寄存器直接寻址。寄存器中存放着操作数,则称为寄存器直接寻址。【例】【例】:执行:执行ADD Ri指令,指令, 该指令说明该指令说明Ri是操作数的有效地址,从是操作数的有效地址,从Ri中取出操中取出操 作数与累加器的内容相加,其结果放在累加器中。作数与累加器的内容
33、相加,其结果放在累加器中。Ri ADD I Ri寻址特征寻址特征寄存器号寄存器号 操作数操作数通用寄存器组通用寄存器组 寄存器间接寻址,是指令中地址字段所指的寄存器中存放寄存器间接寻址,是指令中地址字段所指的寄存器中存放的是操作数的地址。的是操作数的地址。 OP I R R(4) (4) 寄存器间接寻址方式寄存器间接寻址方式操作数地址操作数地址E E通用寄存器组通用寄存器组 主主 存存操作数操作数操作数有效地址 E=(R)操作数 S=(E)=(R)(5) (5) 直接寻址直接寻址 直接寻址是指指令中的地址码就是操作数的有效地址直接寻址是指指令中的地址码就是操作数的有效地址,按这个地址可直接在存
34、储器中存入或取得操作数。,按这个地址可直接在存储器中存入或取得操作数。 采用直接寻址方式时,指令字中的形式地址采用直接寻址方式时,指令字中的形式地址A A就是操作数就是操作数的有效地址的有效地址E E,既,既E EA A。因此通常把形式地址。因此通常把形式地址A A又称为直接地又称为直接地址。如果用址。如果用S S表示操作数,那么直接寻址的逻辑表达式为表示操作数,那么直接寻址的逻辑表达式为 : : S S(E E)()(A A)(6) (6) 间接寻址间接寻址 指令中的地址码部分给出的指令中的地址码部分给出的既不是操作数,又不是操作数既不是操作数,又不是操作数的地址的地址,而是存放操作数地址的
35、内存单元的地址,这个地址叫,而是存放操作数地址的内存单元的地址,这个地址叫做做间接地址间接地址。其寻址方式称为。其寻址方式称为间接寻址方式间接寻址方式,简称,简称间址间址。通常在间接寻址情况下,由寻址特征位给予指示通常在间接寻址情况下,由寻址特征位给予指示。(a) 一次间址一次间址 MOV Ri, (D)(b)二次间址二次间址 MOV Ri, (D)【例】【例】:内内 存存MOV X2 Ri Ri10252200122000132 3100310010250操作码 特征 寄存器号 地址码DMOV操作码 特征 寄存器号 地址码D 内内 存存Ri03200X2 Ri 0132 0132320010
36、25MOV1025(7)相对寻址方式)相对寻址方式 相对寻址是把程序计数器相对寻址是把程序计数器PCPC的内容加上指令格式中的形的内容加上指令格式中的形式地址式地址A A而形成操作数的有效地址。程序计数器的内容就是而形成操作数的有效地址。程序计数器的内容就是当前指令的地址。当前指令的地址。“相对相对”寻址,就是相对于当前的指令地寻址,就是相对于当前的指令地址而言。此时址而言。此时形式地址形式地址A A通常称为偏移量,其值可正可负,通常称为偏移量,其值可正可负,相对于当前指令地址进行浮动。相对于当前指令地址进行浮动。 E= (PC) +A (8 8)基址寻址方式)基址寻址方式 当存储容量较大,所
37、需地址码的长度大于字长时,指令中的地址当存储容量较大,所需地址码的长度大于字长时,指令中的地址码部分直接给出的地址不可能直接访问存储器的所有单元。因此,把码部分直接给出的地址不可能直接访问存储器的所有单元。因此,把整个存储空间分成若干段,每段的首地址存放在一个整个存储空间分成若干段,每段的首地址存放在一个基址寄存器基址寄存器中,中,段内的位移量由指令直接给出。存储器的实际地址就等于基址寄存器段内的位移量由指令直接给出。存储器的实际地址就等于基址寄存器的内容加上段内位移量。这就叫做的内容加上段内位移量。这就叫做基址寄存器寻址方式基址寄存器寻址方式,简称,简称基址寻基址寻址址。E= (RB) +A
38、 RB(9 9)变址寻址方式)变址寻址方式 变址寻址变址寻址是将指令中的基地址码和一个是将指令中的基地址码和一个“变址值变址值”相相加后形成操作数的有效地址。加后形成操作数的有效地址。“变址值变址值”存放在一个专用的存放在一个专用的变址寄存器变址寄存器R Ri i中或专用的内存单元中。中或专用的内存单元中。 变址值是根据程序需要而设置的,与本条指令中的地变址值是根据程序需要而设置的,与本条指令中的地址长度无关,只要变址寄存器的字长足够长,可以进行内址长度无关,只要变址寄存器的字长足够长,可以进行内存全容量的访问。使用起来十分灵活。存全容量的访问。使用起来十分灵活。OPX4Ri 0080 100
39、010802000内内 存存20000300RiOPX5Ri 0080 1000130002000800内内 存存Ri操作码 寻址特征 变址器号 基地址码D 操作码 寻址特征 变址器号 基地址码D X4=1 EA=(Ri)+D) X5=1 EA=(D)+(Ri) 有效地址有效地址 EA=(1000+0080) =2000 有效地址有效地址 EA=1300+1000=2300 操作数操作数 = (2000) = 0300 操作数操作数 = (2300) = 0200 (a)先变址方式先变址方式 (b)后变址方式后变址方式 基址寻址面向系统,主要用于逻辑地址到物理地址基址寻址面向系统,主要用于逻辑
40、地址到物理地址的变换,用来解决程序在主存储器中的再定位和扩大寻址的变换,用来解决程序在主存储器中的再定位和扩大寻址空间等问题。在一些大型机中,基址寄存器是由管理程序空间等问题。在一些大型机中,基址寄存器是由管理程序利用特权指令来使用,用户程序无权修改它,从而确保了利用特权指令来使用,用户程序无权修改它,从而确保了系统的安全性。系统的安全性。 变址寻址则面向用户,用于访问字符串、向量和数变址寻址则面向用户,用于访问字符串、向量和数组等成批数据,没有逻辑地址到物理地址的变换功能。组等成批数据,没有逻辑地址到物理地址的变换功能。基址和变址的应用方向基址和变址的应用方向(10)自动增量)自动增量/减量
41、寻址减量寻址 这是寄存器间接寻址的一种变型,某些机器设计有能够自动增加/减少其内容的寄存器,每执行该指令一次,寄存器的内容就可以自动增量/减量。在自动增量寻址方式中,操作数在主存中的有效地址等于寄存器的内容或寄存器的内容与位移量之和,同时每执行该指令一次,寄存器的内容就自动增量(根据操作数是字节、字、双字分别增加1、2、4)。常用助记符为(R)+,加号在括号之后,形象地表示先操作后修改寄存器的内容。(11) 堆栈寻址方式 堆栈有寄存器堆栈和存储器堆栈两种形式,现代计算机大都采用存储器堆栈,存储器堆栈是由程序员在主存空间开辟的一个以后进先出(LIFO)方式来访问的存储区域。使用存储器堆栈的优点是
42、堆栈的容量大,并且访问方便,缺点是进栈和出栈的速度慢。操作数存放在堆栈的寻址方式,称为堆栈寻址。采用堆栈寻址的典型指令包括堆栈操作指令、中断调用与返回指令、子程序调用与返回指令等。堆栈寻址方式(3) SP 的修改与主存编址方法有关 按 字 编址进栈出栈(SP) 1 SP(SP)+ 1 SP 按 字节 编址存储字长 16 位进栈出栈(SP) 2 SP(SP)+ 2 SP存储字长 32 位进栈出栈(SP) 4 SP(SP)+ 4 SP【例】【例】: 一种二地址一种二地址RS型指令的结构如下所示:型指令的结构如下所示:OP通用寄存器通用寄存器IX偏移量偏移量D6位位 4位位 1位位 2位位 16位位
43、 其中其中I为间接寻址标志位,为间接寻址标志位,X为寻址模式字段,为寻址模式字段,D为偏移量字段,通过为偏移量字段,通过I,X,D的的组合,可构成下表所示的寻址方式。请写出组合,可构成下表所示的寻址方式。请写出6种寻址方式的名称。种寻址方式的名称。寻址方式举例寻址方式举例寻址方式寻址方式IX有效地址有效地址E算法算法说明说明(1)(2)(3)(4)(5)(6)000110000110110011EDE(PC)DE(R2)DE(R3)E(D)E(R1)D PC为程序计数器为程序计数器R2为变址寄存器为变址寄存器 R1为基址寄存器为基址寄存器解解:(1)直接寻址)直接寻址(6)基址寻址)基址寻址
44、(2)相对地址)相对地址(3)变址寻址)变址寻址 (4)寄存器间接寻址)寄存器间接寻址(5)间接寻址)间接寻址【例】【例】 设有一台计算机,其指令长度为16位,有一类RS型指令的格式: 其中,OP为操作码,占6位;R为寄存器编号,占2位,可访问4个不同的通用寄存器;MOD为寻址方式,占2位,与形式地址A一起决定源操作数,规定如下: MOD=00,为立即寻址,A为立即数; MOD=01,为相对寻址,A为位移量; MOD=10,为变址寻址,A为位移量。 假定要执行的指令为加法指令,存放在1000H单元中,形式地址A的编码为01H,其中H表示十六进制数。该指令执行前存储器和寄存器的存储情况如图所示,
45、假定此加法指令的两个源操作数中一个来自于形式地址A或者主存,另一个来自于目的寄存器R0,并且加法的结果都存放在目的寄存器R0中。 在以下几种情况下,该指令执行后,R0和PC的内容为多少? (1)若MOD=00,(R0)= ; (2)若MOD=01,(R0)= ; (3)若MOD=10,(R0)= ;(PC)= 。 【解】【解】: (1) 若MOD=00,为立即寻址,则指令格式中的形式地址部分即为立即数,因此一个源操作数为01H,另一个源操作数为R0的内容0015H,加法指令执行的结果为(R0)= 0016H 。 (2) 若MOD=01,为相对寻址,则一个源操作数的有效地址E=(PC)+A,在执
46、行加法指令时,PC的值为下一条指令的地址,即(PC)=1001H,由此可以算出这个源操作数的有效地址为E=1001H+01H=1002H,这个操作数为(E)=1150H,另一个源操作数为R0的内容0015H,加法指令执行的结果为(R0)= 1165H 。 (3) 若MOD=10,为变址寻址,则一个源操作数的有效地址E=(Rx)+A,由此可以算出这个源操作数的有效地址为E=1002H+01H=1003H,这个操作数为(E)=1250H,另一个源操作数为R0的内容0015H,加法指令执行的结果为(R0)= 1265H ;在执行加法指令时,PC的值为下一条指令的地址,即(PC)= 1001H 。 【
47、例】【例】 已知某计算机系统中有一类已知某计算机系统中有一类RS型指令,其指令格式如图所示:型指令,其指令格式如图所示: 该指令长度为该指令长度为16位,已知位,已知CPU中有中有8个个16位长的通用寄存器,这些位长的通用寄存器,这些寄存器也可作为基址寄存器使用,若要构造寄存器也可作为基址寄存器使用,若要构造16条条RS型指令,问:型指令,问: (1)该类指令各段占用多少位?该类指令各段占用多少位? (2)能寻址的最大主存地址为多少?能寻址的最大主存地址为多少? (3)若将若将RS型指令中的操作码段扩展到寄存器寻址段而构成型指令中的操作码段扩展到寄存器寻址段而构成S型指令,型指令,问此时问此时
48、RS型指令最多为多少条?在此基础上型指令最多为多少条?在此基础上S型指令最多可以设计多少型指令最多可以设计多少条?条?【解】【解】:(1)操作码决定了指令的功能,若要构造操作码决定了指令的功能,若要构造16条条RS型指令,则操作型指令,则操作码段的位数为:码段的位数为: lb16 = 4 (位)(位) 指令格式中的寄存器寻址段实际上是可访问的通用寄存器的编码,指令格式中的寄存器寻址段实际上是可访问的通用寄存器的编码,因为因为CPU中有中有8个个16位长的通用寄存器,所以寄存器寻址段的位数为:位长的通用寄存器,所以寄存器寻址段的位数为: lb8 = 3(位)(位) 因为通用寄存器可作为基址寄存器
49、使用,即指令格式中的基址段所因为通用寄存器可作为基址寄存器使用,即指令格式中的基址段所使用的基址寄存器实际上就是通用寄存器,所以基址段的位数与寄存器使用的基址寄存器实际上就是通用寄存器,所以基址段的位数与寄存器寻址段的位数相同,为寻址段的位数相同,为3位。位。 形式地址段的位数等于指令的字长减去操作码段、寄存器寻址段和形式地址段的位数等于指令的字长减去操作码段、寄存器寻址段和基址段的位数,为基址段的位数,为6位。位。 综合以上分析,该类指令各段占用的位数如下所示:综合以上分析,该类指令各段占用的位数如下所示: OPRiRjARS型型4336 (2) 由于该类指令只有基址寻址访问主存,因此寻址的
50、最大主存地址由于该类指令只有基址寻址访问主存,因此寻址的最大主存地址只由基址寻址决定。基址寻址的只由基址寻址决定。基址寻址的E=(Rj)+A,位移量,位移量A用用补码补码表示,最大值表示,最大值为为25-1,基址寄存器的最大值为,基址寄存器的最大值为216-1,因此该类指令能寻址的最大主存地,因此该类指令能寻址的最大主存地址为:址为:216+25-2 (3) RS型指令的操作码段占型指令的操作码段占4位,最多有位,最多有16种编码,但至少要留一种种编码,但至少要留一种编码作为编码作为S型指令操作码的扩展标志,因此型指令操作码的扩展标志,因此RS型指令最多为型指令最多为15条;在条;在S型型指令
51、操作码只使用一种扩展标志的基础上指令操作码只使用一种扩展标志的基础上S型指令最多可以设计型指令最多可以设计8条。条。 此例中要求计算能寻址的最大主存地址,除此之外,还要区分诸如寻此例中要求计算能寻址的最大主存地址,除此之外,还要区分诸如寻址的范围、寻址的地址空间大小、寻址的最大存储空间大小等概念。寻址址的范围、寻址的地址空间大小、寻址的最大存储空间大小等概念。寻址的范围是指在所有访存的寻址方式中,从的范围是指在所有访存的寻址方式中,从0到某一最大访存地址,如此例到某一最大访存地址,如此例中的寻址范围为中的寻址范围为0216+25-2;寻址的地址空间大小是指在所有访存的寻址;寻址的地址空间大小是
52、指在所有访存的寻址方式中,能访问的地址空间的个数,如此例中能寻址的地址空间大小为方式中,能访问的地址空间的个数,如此例中能寻址的地址空间大小为216+25-1;寻址的最大存储空间大小带有存储单位,如;寻址的最大存储空间大小带有存储单位,如B、KB、MB等,等,它等于能寻址的地址空间的大小乘以一个地址所存储的字节数,如此例中它等于能寻址的地址空间的大小乘以一个地址所存储的字节数,如此例中能寻址的存储器空间的大小为(能寻址的存储器空间的大小为(216+25-1)2B。 【例】【例】 某某1616位机所使用指令格式和寻址方式如下所示。该机有两个位机所使用指令格式和寻址方式如下所示。该机有两个2020
53、位基值寄存器位基值寄存器,四个,四个1616位变址寄存器,位变址寄存器, 十六个十六个1616位通用寄存器。位通用寄存器。 指令格式中的指令格式中的 S( S(源源) ),D(D(目标目标) )都是通用寄存器,都是通用寄存器,M M是主存中的一个单元。是主存中的一个单元。 三种指令的操作码分别是三种指令的操作码分别是 MOV (OP) MOV (OP)(A)(A)H H, MOV MOV是传送指令,是传送指令, STA (OP) STA (OP)(1B)(1B)H H, STA STA为写数指令为写数指令 LDA (OP) LDA (OP)(3C)(3C)H H。 LDA LDA为读数指令为读
54、数指令OP目标目标源源MOV S, D15 10 9 8 7 4 3 0 20位地址位地址 目标目标 OP LDA M,D 15 10 9 8 7 4 3 0 OP基址基址源源 变址变址位移量位移量 15 10 9 8 7 4 3 0 STA S, M要求:(要求:(1)分析三种指令格式与寻址方式特点。)分析三种指令格式与寻址方式特点。 (2)CPU完成哪一种操作所花时间最短?哪一种操作花时间完成哪一种操作所花时间最短?哪一种操作花时间 最长?第二种指令的执行时间有时会等于第三种指令的最长?第二种指令的执行时间有时会等于第三种指令的 执行时间吗?执行时间吗? (1) 第一种指令是单字长二地址指
55、令,第一种指令是单字长二地址指令,RR型;型; 第二种指令是双字长二地址指令,第二种指令是双字长二地址指令,RS型,其中型,其中S采用基址寻址或变址寻址,采用基址寻址或变址寻址,R由源寄存器决定;由源寄存器决定; 第三种也是双字长二地址指令,第三种也是双字长二地址指令,RS型,其中型,其中R由目标寄存器决定,由目标寄存器决定,S由由20位地址(直接寻址)决定位地址(直接寻址)决定。【解】:【解】:(2) 第一种指令所花时间最短,因为是第一种指令所花时间最短,因为是RR型指令,不需要访问型指令,不需要访问 存储器。存储器。 第二种指令所花时间最长,因为是第二种指令所花时间最长,因为是RS型指令,
56、需要访问存型指令,需要访问存储器,同时要进行寻址方式的变换运算(基值或变址),储器,同时要进行寻址方式的变换运算(基值或变址), 这也需要时间。这也需要时间。 第三种指令虽然也访问存储器,但节省了求有效地址运算第三种指令虽然也访问存储器,但节省了求有效地址运算 的时间开销。的时间开销。 第二种指令的执行时间不会等于第三种指令的执行时间。第二种指令的执行时间不会等于第三种指令的执行时间。4.4 4.4 典型指令典型指令 一台计算机的指令系统通常有上百条或几百条指令,从它一台计算机的指令系统通常有上百条或几百条指令,从它们所完成的功能来看,一个较为完善的指令系统,应具备以下们所完成的功能来看,一个
57、较为完善的指令系统,应具备以下各类指令。各类指令。1.1.数据传送类指令数据传送类指令 这类指令的功能是实现寄存器与寄存器,寄存器与存储单这类指令的功能是实现寄存器与寄存器,寄存器与存储单元以及存储单元与存储单元之间的数据传送。元以及存储单元与存储单元之间的数据传送。 数据传送指令主要包括数据传送指令主要包括取数指令、存数指令、传送指令、取数指令、存数指令、传送指令、成组传送指令、字节交换指令、清累加器指令、堆栈操作指令成组传送指令、字节交换指令、清累加器指令、堆栈操作指令等等。等等。指令分类指令分类2.2.算术运算指令算术运算指令 这类指令包括这类指令包括二进制定点加、减、乘、除指令,浮点加
58、、减、乘、除指二进制定点加、减、乘、除指令,浮点加、减、乘、除指令,求反、求补指令,算术移位指令,算术比较指令,十进制加、减运算令,求反、求补指令,算术移位指令,算术比较指令,十进制加、减运算指令指令等。这类指令主要用于定点或浮点的算术运算。等。这类指令主要用于定点或浮点的算术运算。3.3.逻辑运算指令逻辑运算指令这类指令包括这类指令包括逻辑加、逻辑乘、逻辑比较、测等指令、按位加、逻辑逻辑加、逻辑乘、逻辑比较、测等指令、按位加、逻辑移位移位等指令,主要用于无符号数的位操作、代码的转换、判断及运算。移等指令,主要用于无符号数的位操作、代码的转换、判断及运算。移位指令用来对寄存器的内容实现左移、右
59、移或循环移位。位指令用来对寄存器的内容实现左移、右移或循环移位。4.4.程序控制指令程序控制指令程序控制指令也称转移指令。执行程序时,有时机器执行到某条指令程序控制指令也称转移指令。执行程序时,有时机器执行到某条指令时,出现了几种不同结果,这时机器必须执行一条转移指令,根据不同结果时,出现了几种不同结果,这时机器必须执行一条转移指令,根据不同结果进行转移,从而改变程序原来执行的顺序。这种转移指令称为条件转移指令进行转移,从而改变程序原来执行的顺序。这种转移指令称为条件转移指令。除各种。除各种条件转移指令外,还有无条件转移指令、转子程序指令、返回主程条件转移指令外,还有无条件转移指令、转子程序指
60、令、返回主程序指令、中断返回指令序指令、中断返回指令等。等。 转移指令的转移地址一般采用直接寻址和相对寻转移指令的转移地址一般采用直接寻址和相对寻址方式来确定。址方式来确定。 转子程序指令转子程序指令是转向本指令操作地址所指出的子程序入口,并将原程序是转向本指令操作地址所指出的子程序入口,并将原程序中下一条指令地址存入内存某单元(或指定的某个寄存器)中,以便为返回中下一条指令地址存入内存某单元(或指定的某个寄存器)中,以便为返回主程序时提供返回地址。主程序时提供返回地址。5.输入输出指令输入输出指令 输入输出指令主要用来启动外围设备,检查测试外围设备输入输出指令主要用来启动外围设备,检查测试外
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行政管理核心考点试题及答案
- 高考数学考核趋势题目及答案2023
- 敏捷项目管理2025年考试试题及答案
- 科学探索活动实施方案计划
- 课程整合幼儿园班级的有效探索计划
- 法学概论复习季度计划与分配试题及答案
- 2025届吉林省长春市数学七下期末检测模拟试题含解析
- 2025届湖北省十堰市郧西县八年级数学第二学期期末达标检测模拟试题含解析
- 企业战略与政策风险试题及答案
- 城市交通信号控制策略重点基础知识点
- (高清版)DG∕TJ 08-7-2021 建筑工程交通设计及停车库(场)设置标准
- 无房无车离婚协议书
- 2025-2030年中国甲巯咪唑片行业市场现状供需分析及投资评估规划分析研究报告
- 史明清时期社会经济的发展课件++2024-2025学年统编版七年级历史下册
- 2025年安徽国控资产管理有限公司第二季度社会招聘5人笔试参考题库附带答案详解
- 2025中考语文7-9年级总复习古诗词默写
- 中国特色社会主义+综合练习(三)-2025届中职高考政治一轮复习高教版(2023版)
- 情境+任务驱动作文(兼审“情境”与“任务”)-2024年中考语文重难点复习专练(江苏)学生版
- (二模)临沂市2025年高三高考模拟考试地理试题卷(含答案)
- 2024年新疆巴楚县事业单位公开招聘村务工作者笔试题带答案
- 城管协管笔试题及答案
评论
0/150
提交评论