《第5章指令系统.ppt》由会员分享,可在线阅读,更多相关《第5章指令系统.ppt(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5章指令系统 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第第5章章指令系统指令系统计算机系统主要由硬件(计算机系统主要由硬件(Hardware)和软件)和软件(Software)两部分组成。所谓硬件就是指构成计算机的)两部分组成。所谓硬件就是指构成计算机的电子、机械、光学的元件或装置,它们是看得见,摸得着得电子、机械、光学的元件或装置,它们是看得见,摸得着得实体。软件则是为便于用户使用计算机而编写的各种程序,实体。软件则是为便于用户使用计算机而编写的各种程序
2、,它实际上是由一系列机器指令组成。一台计算机中全部指令它实际上是由一系列机器指令组成。一台计算机中全部指令的集合称为这台计算机的指令系统,它是软、硬件设计的分的集合称为这台计算机的指令系统,它是软、硬件设计的分界面。界面。计算机性能与它所设置的指令系统有很大的关系,指计算机性能与它所设置的指令系统有很大的关系,指令系统反映了计算机的主要属性,而指令系统的设置又与机令系统反映了计算机的主要属性,而指令系统的设置又与机器的硬件结构密切相关。指令是计算机执行某种操作的命令,器的硬件结构密切相关。指令是计算机执行某种操作的命令,而指令系统是一台计算机中所有机器指令的集合。通常性能而指令系统是一台计算机
3、中所有机器指令的集合。通常性能较好的计算机都设置有功能齐全、通用性强、指令丰富的指较好的计算机都设置有功能齐全、通用性强、指令丰富的指令系统,而指令功能的实现需要复杂的硬件结构来支持。令系统,而指令功能的实现需要复杂的硬件结构来支持。2007.7.22计算机组成与结构本章要点:本章要点:指令格式指令格式操作数的存储方式操作数的存储方式寻址方式和范围寻址方式和范围指令系统设计指令系统设计指令系统的发展指令系统的发展2007.7.23计算机组成与结构5.1指令系统概述指令系统概述计算机能解题是由于机器本身存在一种语言,计算机能解题是由于机器本身存在一种语言,它既能理解人得意图,又能被机器自身识别。
4、机器它既能理解人得意图,又能被机器自身识别。机器语言是由一条条语句构成的,每一条语句又能准确语言是由一条条语句构成的,每一条语句又能准确表达某种语义。例如它可以命令机器做某种操作,表达某种语义。例如它可以命令机器做某种操作,指出参与操作的数或其它信息在什么地方等等。计指出参与操作的数或其它信息在什么地方等等。计算机就是连续执行每一条机器指令而实现全自动工算机就是连续执行每一条机器指令而实现全自动工作的。人们习惯把每一条机器语言的语句叫机器指作的。人们习惯把每一条机器语言的语句叫机器指令,而又将全部机器指令的集合叫做机器的指令系令,而又将全部机器指令的集合叫做机器的指令系统。因此机器的指令系统集
5、中反映了机器的功能,统。因此机器的指令系统集中反映了机器的功能,是计算机系统中软件与硬件的分界面,如图是计算机系统中软件与硬件的分界面,如图5-1所示。所示。就目前来看,无论多么复杂、功能多么强大的软件,就目前来看,无论多么复杂、功能多么强大的软件,凡是能够在机器上直接运行的目标程序都是由一系凡是能够在机器上直接运行的目标程序都是由一系列机器指令组成的。列机器指令组成的。2007.7.24计算机组成与结构2007.7.25计算机组成与结构对于软件设计人员而言,则需使用这些指令对于软件设计人员而言,则需使用这些指令编制各种各样的系统软件和应用软件,用这些软编制各种各样的系统软件和应用软件,用这些
6、软件来填补硬件的指令与人们习惯的使用方式之间件来填补硬件的指令与人们习惯的使用方式之间的语义差距。因此,可以说,指令系统是软件设的语义差距。因此,可以说,指令系统是软件设计人员与硬件设计人员之间的一个主要分界面,计人员与硬件设计人员之间的一个主要分界面,也是他们之间互相沟通的一座桥梁。一方面是程也是他们之间互相沟通的一座桥梁。一方面是程序员所能看到的机器的主要属性,另一方面表明序员所能看到的机器的主要属性,另一方面表明计算机具有哪些最基本的硬件功能,也就是说指计算机具有哪些最基本的硬件功能,也就是说指令系统既为软件设计者提供最低层的程序设计语令系统既为软件设计者提供最低层的程序设计语言,也为硬
7、件设计者提供了最基本的设计依据。言,也为硬件设计者提供了最基本的设计依据。在计算机系统的设计过程中,指令系统的设计是在计算机系统的设计过程中,指令系统的设计是非常关键的,不但直接关系着对程序设计的支持非常关键的,不但直接关系着对程序设计的支持程度,也关系着该计算机的硬件结构,必须由软程度,也关系着该计算机的硬件结构,必须由软件设计人员和硬件设计人员共同来完成。件设计人员和硬件设计人员共同来完成。2007.7.26计算机组成与结构5.2 指令格式计算机的指令格式与机器的字长、存储器的容计算机的指令格式与机器的字长、存储器的容量及指令的功能都有很大的关系。从便于程序设计、量及指令的功能都有很大的关
8、系。从便于程序设计、增加基本操作并行性、提高指令功能的角度来看,增加基本操作并行性、提高指令功能的角度来看,指令中应包含多种信息。但在有些指令中,由于部指令中应包含多种信息。但在有些指令中,由于部分信息可能无用,这将浪费指令所占的存储空间,分信息可能无用,这将浪费指令所占的存储空间,增加了访存次数,从而影响速度。因此,如何合理、增加了访存次数,从而影响速度。因此,如何合理、科学地设计指令格式,使指令既能给出足够的信息,科学地设计指令格式,使指令既能给出足够的信息,又使其长度尽可能地与机器字长相匹配,以节省存又使其长度尽可能地与机器字长相匹配,以节省存储空间,缩短取指时间,提高机器的性能,这是指
9、储空间,缩短取指时间,提高机器的性能,这是指令格式设计中的一个重要问题。令格式设计中的一个重要问题。2007.7.27计算机组成与结构计算机是通过执行指令来处理各种数据的。为了计算机是通过执行指令来处理各种数据的。为了指出数据的来源、操作结果的去向及所执行的操作,指出数据的来源、操作结果的去向及所执行的操作,一条指令必须包含下列信息:一条指令必须包含下列信息:(1)操作码。它具体说明了操作的性质及功能。)操作码。它具体说明了操作的性质及功能。一台计算机可能有几十条至几百条指令,每一条指令一台计算机可能有几十条至几百条指令,每一条指令都有一个相应的操作码,计算机通过识别该操作码来都有一个相应的操
10、作码,计算机通过识别该操作码来完成不同的操作。完成不同的操作。(2)操作数的地址。)操作数的地址。CPU通过该地址就可以取通过该地址就可以取得所需的操作数。得所需的操作数。(3)操作结构的存储地址。把对操作数的处理所)操作结构的存储地址。把对操作数的处理所产生的结果保存到该地址中,一边再次使用。产生的结果保存到该地址中,一边再次使用。2007.7.28计算机组成与结构4)执行程序时,大多数指令按顺序依次从主执行程序时,大多数指令按顺序依次从主存中取出执行,只有在遇到转移指令时,程序的执行存中取出执行,只有在遇到转移指令时,程序的执行顺序才会改变。为了压缩指令的长度,可以用一个程顺序才会改变。为
11、了压缩指令的长度,可以用一个程序计数器(序计数器(ProgramCounter,PC)存放指令地址。)存放指令地址。每执行一条指令,每执行一条指令,PC的指令地址就自动加的指令地址就自动加1(设该指(设该指令只占用一个主存单元),指出将要执行的下一条指令只占用一个主存单元),指出将要执行的下一条指令地址。当遇到执行转移指令时,则用转移地址修改令地址。当遇到执行转移指令时,则用转移地址修改PC的内容。由于使用了的内容。由于使用了PC,指令中就不必明显地给,指令中就不必明显地给出下一条将要执行指令的地址。出下一条将要执行指令的地址。2007.7.29计算机组成与结构从上述分析可知,一条指令实际上包
12、括两种信息即操作从上述分析可知,一条指令实际上包括两种信息即操作码和地址码。操作码(码和地址码。操作码(OperationCode,OP)用来表示该指)用来表示该指令所需要完成的操作,其长度取决于指令系统中的指令条数。令所需要完成的操作,其长度取决于指令系统中的指令条数。地址码用来描述该指令的操作对象,它或者直接给出操作数,地址码用来描述该指令的操作对象,它或者直接给出操作数,或者指出操作数的存储器地址或寄存器地址(即寄存器名)。或者指出操作数的存储器地址或寄存器地址(即寄存器名)。操作码字段地址码字段其中操作码字段指明了指令的操作性质及功能,地址码则给出了操作数或操作数其中操作码字段指明了指
13、令的操作性质及功能,地址码则给出了操作数或操作数的地址。的地址。一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如下:的基本格式如下:2007.7.210计算机组成与结构5.2.1 操作码操作码部分指出了计算机要执行什么性质的操作,操作码部分指出了计算机要执行什么性质的操作,如进行加法、减法、取数、存数等。不同的指令,其操如进行加法、减法、取数、存数等。不同的指令,其操作码不同,用不同的编码来表示,每一个编码表示一条作码不同,用不同的编码来表示,每一个编码表示一条指令。计算机要为每条指令分配一个确定的操作
14、码。例指令。计算机要为每条指令分配一个确定的操作码。例如:操作码如:操作码0001可以规定为表示加法操作;操作码可以规定为表示加法操作;操作码0010可以规定为表示加法操作等等。每个操作码代表的可以规定为表示加法操作等等。每个操作码代表的功能均由功能均由CPU上相应的电路来实现,因此机器就能执行上相应的电路来实现,因此机器就能执行操作码所要表示的操作。操作码的长度操作码所要表示的操作。操作码的长度n(即操作码的(即操作码的位数)决定了指令系统中完成不同操作的指令条数,如位数)决定了指令系统中完成不同操作的指令条数,如某机器的操作码长度为某机器的操作码长度为n,则不同指令的条数最多为,则不同指令
15、的条数最多为2n。n越大,则指令条数越多,功能越强,指令系统的规模越大,则指令条数越多,功能越强,指令系统的规模也就越大。也就越大。2007.7.211计算机组成与结构目前在指令操作码设计上主要采用以下两种编目前在指令操作码设计上主要采用以下两种编码方式码方式1.固定长度操作码固定长度操作码操作码的长度是固定的,且集中放在指令操作码的长度是固定的,且集中放在指令字的一个字段中,指令的其余部分全部用于地址码。字的一个字段中,指令的其余部分全部用于地址码。例如例如IBM370机和机和VAX-11系列机,操作码的长度均系列机,操作码的长度均为为8位,可表示位,可表示256种不同的操作。种不同的操作。
16、2.可变长度操作码可变长度操作码2007.7.212计算机组成与结构5.2.2地址码地址码地址码用于指定操作数和存放运算结果的地址,地址码用于指定操作数和存放运算结果的地址,通常称为操作数。操作数可以是一个直接的数或者是一个数据通常称为操作数。操作数可以是一个直接的数或者是一个数据所在的地址,它以空格与操作码分开。根据指令功能的不同,所在的地址,它以空格与操作码分开。根据指令功能的不同,操作数可以有一、二、三个或没有操作数之间以逗号分开。操作数可以有一、二、三个或没有操作数之间以逗号分开。1.零地址指令零地址指令格式:格式:OP OPD2.一地址指令一地址指令格式:格式:2007.7.213计
17、算机组成与结构3.二地址指令二地址指令格式:格式:OPD1D2OPD1D2D3它有两个地址码它有两个地址码D1和和D2,分别指明参与操作数在内存中或运算器中通用寄存器,分别指明参与操作数在内存中或运算器中通用寄存器的地址,其中地址的地址,其中地址D1兼作存放操作结果的地址。兼作存放操作结果的地址。功能:(功能:(D1)OP(D2)D14.三地址指令三地址指令格式:格式:2007.7.214计算机组成与结构思考:思考:假如在以后的应用中需要对指令系统进行扩充,假如在以后的应用中需要对指令系统进行扩充,那么设计操作码时应采用固定长度还是可变长度?为那么设计操作码时应采用固定长度还是可变长度?为什么
18、?什么?2007.7.215计算机组成与结构5.3 操作数的存储及其寻址方式1.操作数的类型操作数的类型机器指令可完成对操作数的操作。通常,操作数机器指令可完成对操作数的操作。通常,操作数有有4种类型:种类型:(1)数值)数值数值类型可以是整数和浮点数。整数数值类型可以是整数和浮点数。整数可以是无符号和有符号整数,数据长度可以是字节、可以是无符号和有符号整数,数据长度可以是字节、字或者双字数据。浮点数可以是单精度数据和双精度字或者双字数据。浮点数可以是单精度数据和双精度数据。数据。(2)字符)字符字符类型是一种非数值类型,通常用字符类型是一种非数值类型,通常用ASCII码(码(7个二进制位)表
19、示,数据长度为一个字节个二进制位)表示,数据长度为一个字节长,未使用的最高位填长,未使用的最高位填0。2007.7.216计算机组成与结构(3)地址)地址地址是指存储器地址,根据计算机存地址是指存储器地址,根据计算机存储管理的分段或分页管理方法,地址由段储管理的分段或分页管理方法,地址由段/页地址和段页地址和段/页内偏移量组成,而段页内偏移量组成,而段/页地址则由专门的寄存器存页地址则由专门的寄存器存放。指令中只需表示偏移量即可,该偏移量是一个无放。指令中只需表示偏移量即可,该偏移量是一个无符号单字整数。符号单字整数。(4)逻辑数据)逻辑数据逻辑数据的值只有逻辑数据的值只有0和和1,用一个,用
20、一个二进制位表示即可。逻辑数据和数值数据在形式上无二进制位表示即可。逻辑数据和数值数据在形式上无任何差异,都是一串任何差异,都是一串0/1代码,靠机器指令的操作码来代码,靠机器指令的操作码来决定数据的类型。数据长度与整数的数据长度一致。决定数据的类型。数据长度与整数的数据长度一致。所有机器指令支持的数据类型,都称之为数据表所有机器指令支持的数据类型,都称之为数据表示,它需要硬件支持来进行识别和运算。示,它需要硬件支持来进行识别和运算。2007.7.217计算机组成与结构2.操作数的类型在指令中的表示操作数的类型在指令中的表示操作数类型无论是数值类型还是字符类型,操作数类型无论是数值类型还是字符
21、类型,都是一串二进制序列。为表示数据的类型,通常需要都是一串二进制序列。为表示数据的类型,通常需要增加一些二进制位标识类型。类型的标识有两种时机:增加一些二进制位标识类型。类型的标识有两种时机:存储时标识或处理时标识。对在存储时标识而言,标存储时标识或处理时标识。对在存储时标识而言,标识需要在存储器中增加标识空间,因数据可以是字节、识需要在存储器中增加标识空间,因数据可以是字节、字、双字形式出现的,因此必须在每个字节中标识,字、双字形式出现的,因此必须在每个字节中标识,而以字、双字形式出现的概率较大,每个字节标识会而以字、双字形式出现的概率较大,每个字节标识会造成存储器极大的空间浪费,而且控制
22、比较复杂。对造成存储器极大的空间浪费,而且控制比较复杂。对处理时标识而言,需要在指令中增加标识空间,无论处理时标识而言,需要在指令中增加标识空间,无论数据长度如何,仅需一次标识。因此,在指令中标识数据长度如何,仅需一次标识。因此,在指令中标识数据类型是理所当然的选择。数据类型是理所当然的选择。2007.7.218计算机组成与结构5.3.2 操作数存储方式从指令角度讲,指令的操作数可以存储在指令、从指令角度讲,指令的操作数可以存储在指令、寄存器、堆栈和存储器中。而操作数的位数可以是字寄存器、堆栈和存储器中。而操作数的位数可以是字节、字、双字等。节、字、双字等。对指令而言,可以存放数据的长度是固定
23、的。操对指令而言,可以存放数据的长度是固定的。操作码已经确定了数据的类型。作码已经确定了数据的类型。对寄存器而言,可以存放数据的长度是固定的,对寄存器而言,可以存放数据的长度是固定的,一般与机器字长一致。当操作数长度小于寄存器长度一般与机器字长一致。当操作数长度小于寄存器长度时,操作数总是存放在寄存器的低端。处理部件通过时,操作数总是存放在寄存器的低端。处理部件通过操作码中数据类型标识从寄存器中取相应长度的数据操作码中数据类型标识从寄存器中取相应长度的数据去处理。去处理。2007.7.219计算机组成与结构对存储器而言,一次访问存储单元的取得位数一对存储器而言,一次访问存储单元的取得位数一般与
24、计算机机器字长是相同的,目的是使般与计算机机器字长是相同的,目的是使CPU能够一能够一次访问到操作数的全部。现代计算机的存储器大多是次访问到操作数的全部。现代计算机的存储器大多是以字节为单位编址的,即每个存储单元地址对应一个以字节为单位编址的,即每个存储单元地址对应一个字节的数据空间。存储器硬件特性决定了一次访问存字节的数据空间。存储器硬件特性决定了一次访问存储器所能取得的数据肯定是在连续的地址中,因此当储器所能取得的数据肯定是在连续的地址中,因此当操作数长度大于一个字节时,操作数就必须存放在制操作数长度大于一个字节时,操作数就必须存放在制定地址开始的相邻的多个字节(操作数长度对应字节定地址开
25、始的相邻的多个字节(操作数长度对应字节数)的存储器空间中,按照操作数的高字节和低字节数)的存储器空间中,按照操作数的高字节和低字节在存储器中的存储次序,可分为大端和小端两种数据在存储器中的存储次序,可分为大端和小端两种数据存储方式。将最低字节存储在指定存储器空间中最小存储方式。将最低字节存储在指定存储器空间中最小地址位置的存储方法称为小端方式;将最低字节存储地址位置的存储方法称为小端方式;将最低字节存储在指定存储器空间中最大地址位置的存储方法称为大在指定存储器空间中最大地址位置的存储方法称为大端方式。端方式。2007.7.220计算机组成与结构数据存储采用大端存储方式的处理机有数据存储采用大端
26、存储方式的处理机有IBM360/370,Motorola68000,MIPS,SPARC,HPPA等。数据存储采用小端存储方式的处理机有等。数据存储采用小端存储方式的处理机有Intel80 x86/Pentium,DECVAX,DECAlpha等。等。PowerPC是一个既支持大端方式,又支持小端方式的双端序是一个既支持大端方式,又支持小端方式的双端序机器,数据存储方式的管理由系统寄存器中的特定标机器,数据存储方式的管理由系统寄存器中的特定标志位决定,操作系统或软件工作人员可以通过改变系志位决定,操作系统或软件工作人员可以通过改变系统寄存器的这个特定标志位来设定数据存储是大端还统寄存器的这个特
27、定标志位来设定数据存储是大端还是小端方式。是小端方式。注意:注意:大端、小端存储方式是指数据的字大端、小端存储方式是指数据的字节间的存储次序,而字节内的数据无大端、小端之分,节间的存储次序,而字节内的数据无大端、小端之分,永远是永远是bit7为字节内数据的最高位,为字节内数据的最高位,bit0为字节内数据为字节内数据的最低位。的最低位。2007.7.221计算机组成与结构5.3.3 数据的寻址方式在程序执行过程中,操作数可能在运算部件的某个寄存器在程序执行过程中,操作数可能在运算部件的某个寄存器中或存储器中,也可能就在指令中。组成程序的指令代码,一中或存储器中,也可能就在指令中。组成程序的指令
28、代码,一般是在存储器中的。所谓寻址方式(或编址方式)指的是确定般是在存储器中的。所谓寻址方式(或编址方式)指的是确定本条指令的数据地址及下一条要执行的指令地址的方法,它与本条指令的数据地址及下一条要执行的指令地址的方法,它与计算机硬件结构紧密相关,而且对指令格式和功能有很大影响。计算机硬件结构紧密相关,而且对指令格式和功能有很大影响。从程序员角度来看,寻址方式与汇编程序设计的关系极为密切;从程序员角度来看,寻址方式与汇编程序设计的关系极为密切;与高级语言的编译程序设计也同样密切。不同的计算机有不同与高级语言的编译程序设计也同样密切。不同的计算机有不同的寻址方式,但其基本原理是相同的。有的计算机
29、寻址种类较的寻址方式,但其基本原理是相同的。有的计算机寻址种类较少,因此在指令的操作码中表示出寻址方式;而有的计算机采少,因此在指令的操作码中表示出寻址方式;而有的计算机采用多种寻址方式,此时在指令中专设一个字段表示一个操作数用多种寻址方式,此时在指令中专设一个字段表示一个操作数的来源或去向。在这里仅介绍几种被广泛采用的基本寻址方式。的来源或去向。在这里仅介绍几种被广泛采用的基本寻址方式。在一些计算机中,某些寻址方式还可以组合使用,从而形成复在一些计算机中,某些寻址方式还可以组合使用,从而形成复杂的寻址方式。杂的寻址方式。2007.7.222计算机组成与结构1.立即寻址立即寻址操作数本身放在指
30、令字内,形式地址操作数本身放在指令字内,形式地址A不是操作数的地址,不是操作数的地址,而是操作数本身,如图而是操作数本身,如图5-2所示。所示。2007.7.223计算机组成与结构2.寄存器寻址寄存器寻址计算机的中央处理器一般设置有一定数量计算机的中央处理器一般设置有一定数量的通用寄存器,用以存放操作数、操作数的地址或中的通用寄存器,用以存放操作数、操作数的地址或中间结果。假如指令地址码部分给出某一通用寄存器地间结果。假如指令地址码部分给出某一通用寄存器地址,而且所需的操作数就在这一寄存器中,则称为寄址,而且所需的操作数就在这一寄存器中,则称为寄存器寻址。通用寄存器的数量一般在几个至几十个之存
31、器寻址。通用寄存器的数量一般在几个至几十个之间,比存储单元少很多,因此地址码短,而且从寄存间,比存储单元少很多,因此地址码短,而且从寄存器中存取数据比从存储器中存取快得多,所以这种方器中存取数据比从存储器中存取快得多,所以这种方法可以缩短指令长度、节省存储空间,提高指令的执法可以缩短指令长度、节省存储空间,提高指令的执行速度,在计算机中得到广泛应用。行速度,在计算机中得到广泛应用。例如:例如:MOVAX,CXMOVDS,AX2007.7.224计算机组成与结构3.直接寻址直接寻址指令中的形式地址指令中的形式地址A就是操作数的真实地就是操作数的真实地址址EA,这种寻址方式称为直接寻址方式,又称为
32、绝对,这种寻址方式称为直接寻址方式,又称为绝对寻址方式。如图寻址方式。如图5-3所示。所示。这种寻址方式简单、直观、硬件实现时不这种寻址方式简单、直观、硬件实现时不需要进行计算。随着存储空间的不断扩大,所需的地需要进行计算。随着存储空间的不断扩大,所需的地址码也越来越长,指令长度也相应增加。这种寻址方址码也越来越长,指令长度也相应增加。这种寻址方式适合访问固定存储单元的操作。式适合访问固定存储单元的操作。它的缺点就是形式地址它的缺点就是形式地址A的位数限制了寻的位数限制了寻址范围,同时必须修改指令中的址范围,同时必须修改指令中的A值来改变操作数的地值来改变操作数的地址。址。2007.7.225
33、计算机组成与结构例如:例如:MOVAL,0080HMOVAX,1000H2007.7.226计算机组成与结构4.间接寻址间接寻址在寻址时,有时根据指令的地址码所取出在寻址时,有时根据指令的地址码所取出的内容既不是操作数,也不是下一条要执行的指令,的内容既不是操作数,也不是下一条要执行的指令,而是操作数的地址或指令的地址,这种方式称为间接而是操作数的地址或指令的地址,这种方式称为间接寻址或间址。根据地址码指的是寄存器地址还是存储寻址或间址。根据地址码指的是寄存器地址还是存储器地址,间接寻址又可分为寄存器间接寻址和存储器器地址,间接寻址又可分为寄存器间接寻址和存储器间接寻址两种方式。间接寻址有一次
34、间址和多次间址间接寻址两种方式。间接寻址有一次间址和多次间址两种情况,大多数计算机只允许一次间址。对于存储两种情况,大多数计算机只允许一次间址。对于存储器一次间址的情况,需访问两次存储器才能取得数据,器一次间址的情况,需访问两次存储器才能取得数据,第一次从存储器读出操作数地址,第二次从该地址中第一次从存储器读出操作数地址,第二次从该地址中读取操作数。图读取操作数。图5-4(a)和图)和图5-4(b)分别为寄存器)分别为寄存器间址和存储器间址的操作数寻址方式。间址和存储器间址的操作数寻址方式。2007.7.227计算机组成与结构例如:例如:MOVAX,BX2007.7.228计算机组成与结构5.
35、基址寻址基址寻址在计算机中设置一个专用的基址寄存器,或由指在计算机中设置一个专用的基址寄存器,或由指令制定一个通用寄存器为基址寄存器。操作数的地址令制定一个通用寄存器为基址寄存器。操作数的地址由基址寄存器的内容和指令的地址码由基址寄存器的内容和指令的地址码A相加得到,如图相加得到,如图5-5所示。在这种情况下,地址码所示。在这种情况下,地址码A通常被称为位移量通常被称为位移量(disp),也可用其它方法获得位移量。),也可用其它方法获得位移量。例如:例如:MOVAX,YBX2007.7.229计算机组成与结构基址寄存器主要用于为程序或数据分配存储区,基址寄存器主要用于为程序或数据分配存储区,对
36、多道程序或浮动程序很有用,实现从浮动程序的逻对多道程序或浮动程序很有用,实现从浮动程序的逻辑地址(编写程序时所使用的地址)到存储器的物理辑地址(编写程序时所使用的地址)到存储器的物理地址(程序在存储器中的实际地址,有时称为有效地地址(程序在存储器中的实际地址,有时称为有效地址)的转换。址)的转换。另外,当存储器的容量较大,由指令的地址码部另外,当存储器的容量较大,由指令的地址码部分直接给出的地址不能直接访问到存储器的所有单元分直接给出的地址不能直接访问到存储器的所有单元时,通常把整个存储空间分成若干个段,段的首地址时,通常把整个存储空间分成若干个段,段的首地址存放于基址寄存器或段寄存器中,段内
37、位移量由指令存放于基址寄存器或段寄存器中,段内位移量由指令给出。存储器的实际地址就等于基址寄存器的内容给出。存储器的实际地址就等于基址寄存器的内容(即段首地址)与段内位移量之和,这样通过修改基(即段首地址)与段内位移量之和,这样通过修改基址寄存器的内容就可以访问存储器的任一单元。址寄存器的内容就可以访问存储器的任一单元。2007.7.230计算机组成与结构综上所述,基址寻址主要用以解决程序在存储器综上所述,基址寻址主要用以解决程序在存储器中的定位和扩大寻址空间等问题。通常基址寄存器中中的定位和扩大寻址空间等问题。通常基址寄存器中的值只能由系统程序设定,由特权指令执行,而不能的值只能由系统程序设
38、定,由特权指令执行,而不能被一般用户指令所修改,因此确保了系统的安全性。被一般用户指令所修改,因此确保了系统的安全性。2007.7.231计算机组成与结构6.变址寻址变址寻址变址寻址的过程如图变址寻址的过程如图5-6所示。指令地址码部分给所示。指令地址码部分给出的地址出的地址A和指定的变址寄存器和指定的变址寄存器X的内容通过加法器相的内容通过加法器相加,所得的和作为地址从存储器中读出所需的操作数。加,所得的和作为地址从存储器中读出所需的操作数。这是几乎所有计算机都采用的一种寻址方式,当计算这是几乎所有计算机都采用的一种寻址方式,当计算机中还有基址寄存器时,那么在计算有效地址时还要机中还有基址寄
39、存器时,那么在计算有效地址时还要加上基址寄存器的内容。加上基址寄存器的内容。2007.7.232计算机组成与结构例如:例如:MOVAX,SI2007.7.233计算机组成与结构假如用户用高级语言编程,根本不用考虑假如用户用高级语言编程,根本不用考虑寻址方式,因为这是编译程序的事,但若用汇编语言寻址方式,因为这是编译程序的事,但若用汇编语言编程,则应对它有确切的了解,才能编出正确而又高编程,则应对它有确切的了解,才能编出正确而又高效的程序。此时应认真阅读指令系统的说明书,因为效的程序。此时应认真阅读指令系统的说明书,因为不同计算机采用的寻址方式是不同的,即使是同一种不同计算机采用的寻址方式是不同
40、的,即使是同一种寻址方式,在不同的计算机中也有不同的表达方式或寻址方式,在不同的计算机中也有不同的表达方式或含义。含义。思考:思考:设计指令系统时,数据的寻址方式越多设计指令系统时,数据的寻址方式越多越好吗?为什么?越好吗?为什么?2007.7.234计算机组成与结构5.4指令系统功能设计指令系统功能设计5.4.1常见指令类型常见指令类型1.数据传送指令数据传送指令(1)寄存器与寄存器之间的数据传送;)寄存器与寄存器之间的数据传送;(2)寄存器与存储器之间的数据传送,通常称之)寄存器与存储器之间的数据传送,通常称之为取数为取数/存数指令;存数指令;(3)CPU与外部设备之间的数据传送,通常称之
41、与外部设备之间的数据传送,通常称之为输入为输入/输出指令。输出指令。2007.7.235计算机组成与结构2.算术逻辑运算指令算术逻辑运算指令3.移位操作指令移位操作指令4.浮点运算指令浮点运算指令5.二进制运算指令二进制运算指令6.字符串处理指令字符串处理指令7.转移类指令转移类指令8.堆栈及堆栈操作指令堆栈及堆栈操作指令9.输入输入/输出(输出(I/O)指令)指令10.特权指令特权指令11.其他指令其他指令2007.7.236计算机组成与结构5.4.2指令系统设计思想指令系统设计思想指令系统的设计是微处理器设计中最重要的一步。指令系统的设计是微处理器设计中最重要的一步。设计良好的设计良好的I
42、SA(InstructionSystemArchitecture,即指令系统结构)会产生能够满足各种需要的强大,即指令系统结构)会产生能够满足各种需要的强大的微处理器。本小节主要分析设计一套指令系统结构的微处理器。本小节主要分析设计一套指令系统结构时应该考虑的一些问题。时应该考虑的一些问题。设计设计ISA的目的就是要决定的目的就是要决定ISA完成时想要实现什完成时想要实现什么。特别是要回答出么。特别是要回答出ISA应该是什么?它的处理器应该应该是什么?它的处理器应该能做什么?能做什么?2007.7.237计算机组成与结构指令系统结构设计还会遇到一些问题,如:指令系统结构设计还会遇到一些问题,如
43、:处理器必须向下兼容其他的微处理器吗?微处理器将处理何种类型和规模的数据?需要中断吗?需要条件指令吗?思考思考:对与系列微处理器来说,要求指令系统具有向下兼对与系列微处理器来说,要求指令系统具有向下兼容性,请结合应用实际分析这一特性的优缺点。容性,请结合应用实际分析这一特性的优缺点。2007.7.238计算机组成与结构5.4.3指令系统举例指令系统举例1.Pentium指令系统指令系统2007.7.239计算机组成与结构2.PowerPC指令系统指令系统2007.7.240计算机组成与结构从本节的从本节的Pentium和和PowerPC指令系统介绍可以指令系统介绍可以看到,无论是看到,无论是C
44、ISC风格还是风格还是RISC风格的指令系统,指风格的指令系统,指令系统包含的指令其实现的操作都是常用的和必须的令系统包含的指令其实现的操作都是常用的和必须的操作,它们支持的寻址方式、指令格式均符合其风格操作,它们支持的寻址方式、指令格式均符合其风格特征。在具体的指令格式设计中,每种指令系统都会特征。在具体的指令格式设计中,每种指令系统都会根据其应用需求和指令系统风格特性,增加一些比较根据其应用需求和指令系统风格特性,增加一些比较适合该指令系统的寻址方式、指令格式,以取得更好适合该指令系统的寻址方式、指令格式,以取得更好的性能。的性能。2007.7.241计算机组成与结构3.IBM360指令系
45、统指令系统IBM360属系列机,所谓系列机是指其基本指令系属系列机,所谓系列机是指其基本指令系统相同,基本体系结构相同的一系列计算机。统相同,基本体系结构相同的一系列计算机。IBM370对对IBM360是完全向上兼容的。所以是完全向上兼容的。所以IBM370可看作可看作IBM360的扩展或延伸或改进。的扩展或延伸或改进。IBM360是是32位机器,按字节寻址,并可支持多种位机器,按字节寻址,并可支持多种数据类型,如字节、半字、字、双字(双精度实数)、数据类型,如字节、半字、字、双字(双精度实数)、压缩十进制数、字符串等等。在压缩十进制数、字符串等等。在CPU中有中有16个个32位通位通用寄存器
46、(用户可选定一个寄存器作为基址寄存器用寄存器(用户可选定一个寄存器作为基址寄存器BR或变址寄存器或变址寄存器IX),),4个双精度(个双精度(64位)浮点寄存器。位)浮点寄存器。指令字长有指令字长有16位、位、32位、位、48位三种,如图位三种,如图5-9所示。所示。2007.7.242计算机组成与结构思考:请结合指令系统举例,分析你所知道的计算机思考:请结合指令系统举例,分析你所知道的计算机的指令系统的指令系统。g12007.7.243计算机组成与结构5.5指令系统的发展指令系统的发展在在20世纪世纪70年代后期,许多公司、科研机构都年代后期,许多公司、科研机构都开始了对开始了对CISC的研
47、究,期望找到一种更好的方法来改的研究,期望找到一种更好的方法来改善善CISC的缺点,研究的结果就产生了的缺点,研究的结果就产生了RISC风格的计算风格的计算机系统。这种计算机系统是机系统。这种计算机系统是CISC的另一个极端,其特的另一个极端,其特点前面已讲过,在此不再赘述。研究者认为,这样的点前面已讲过,在此不再赘述。研究者认为,这样的系统一方面性能不比系统一方面性能不比CISC差,另一方面更适合差,另一方面更适合VLSI的的实现、适合流水和并行处理技术的应用。实现、适合流水和并行处理技术的应用。2007.7.244计算机组成与结构从第一台从第一台RISC风格的计算机问世开始,风格的计算机问
48、世开始,CISC和和RISC之间的争论就开始了,这种争论持续了好多年后之间的争论就开始了,这种争论持续了好多年后才平息。一方面是才平息。一方面是RISC随着速度和芯片密度的不断提随着速度和芯片密度的不断提高,高,RISC系统日趋复杂,而系统日趋复杂,而CISC也逐步采用了部分也逐步采用了部分RISC技术(如指令流水线、分级技术(如指令流水线、分级Cache、增加通用寄、增加通用寄存器等);另一方面,通过量化的测试,能够对两者存器等);另一方面,通过量化的测试,能够对两者的性能有个客观的评价。的性能有个客观的评价。2007.7.245计算机组成与结构5.6实例解析实例解析例例5.1某某16位机器
49、所使用的指令格式和寻址方式位机器所使用的指令格式和寻址方式如图如图5-10所示,该机有两个所示,该机有两个20位基址寄存器,位基址寄存器,4个个16位位变址寄存器,变址寄存器,16个个16位通用寄存器,指令汇编格式中位通用寄存器,指令汇编格式中的的S(源),(源),D(目标)都是通用寄存器,(目标)都是通用寄存器,M是主存的是主存的一个单元,三种指令的操作码分别是一个单元,三种指令的操作码分别是MOV(OP)=(A)H,STA(OP)=(1B)H,LDA(OP)=(3C)H,MOV是传送指令,是传送指令,STA为写为写数指令,数指令,LDA为读数指令。为读数指令。2007.7.246计算机组成
50、与结构图图5-10指令格式指令格式2007.7.247计算机组成与结构本章小结本章小结本章主要讲述了计算机指令系统的基本概念,指本章主要讲述了计算机指令系统的基本概念,指令的格式、指令的操作数、操作数的存储以及操作数令的格式、指令的操作数、操作数的存储以及操作数的寻址方式等。指令系统是表征计算机性能的重要因的寻址方式等。指令系统是表征计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,素,它的格式与功能不仅直接影响到机器的硬件结构,而且也影响到系统软件,是计算机用户所使用的各种而且也影响到系统软件,是计算机用户所使用的各种软件与计算机硬件系统之间的接口,无论多么复杂、软件与计算机