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

下载本文档

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

文档简介

1、1第第3 3章章 寻址方式与指令系统寻址方式与指令系统指令指令:指示计算机执行某种操作的命令。:指示计算机执行某种操作的命令。指令系统指令系统:一台计算机拥有的全部指令。:一台计算机拥有的全部指令。 人们知道:计算机通过执行程序可以完成所要求的人们知道:计算机通过执行程序可以完成所要求的各种任务。程序是由一系列指令构成。指令则是人们各种任务。程序是由一系列指令构成。指令则是人们指示计算机硬件执行诸如加、减(算术运算和逻辑运指示计算机硬件执行诸如加、减(算术运算和逻辑运算)、移位等基本操作的命令。算)、移位等基本操作的命令。程序程序:由一系列:由一系列有序有序指令构成。指令构成。如: Intel

2、 8086/8088 CPU的指令系统中共有92种基本指令,分为6大类:(1)数据传送(2)算术运算(3)逻辑运算和移位指令(4)串操作(5)控制转移(6)处理器控制指令系统是硬件和软件的主要界面。l是设计计算机硬件的一个基本依据l是软件设计者编制程序的基础4本节主要讨论:一般本节主要讨论:一般指令格式指令格式 常用常用寻址方式寻址方式 面向用户的面向用户的指令类型指令类型52、操作数、操作数或或操作数地址操作数地址:指令中应给出参与运算的数:指令中应给出参与运算的数据或指出这些数据的存放位置。据或指出这些数据的存放位置。3、存放结果的地址、存放结果的地址:运算完成后所得结果的存放位置。:运算

3、完成后所得结果的存放位置。3.1 指令格式与指令系统设计指令格式与指令系统设计一条指令一般应包含以下信息:一条指令一般应包含以下信息:1、操作码、操作码:指示操作的类型,即要求计算机执行的操作,:指示操作的类型,即要求计算机执行的操作,如加、减、乘、除等。如加、减、乘、除等。3.1.1 指令格式指令格式6 4、后续指令地址、后续指令地址:在一个由指令序列构:在一个由指令序列构成的程序中,执行完一条指令后,需要指出成的程序中,执行完一条指令后,需要指出下一条要执行指令的存放位置。下一条要执行指令的存放位置。 在一条指令中应包含一个操作码和一个或在一条指令中应包含一个操作码和一个或多个地址码。多个

4、地址码。7 指令基本格式指令基本格式操作码操作码 操作数操作数OROR地址码地址码 D D一个一个一个或几个一个或几个下面就从以下方面介下面就从以下方面介绍绍:1. 指令指令2. 操作码结构操作码结构3. 地址结构地址结构思考:计算机执行什么操作思考:计算机执行什么操作是由一条指令中的哪一部分是由一条指令中的哪一部分所确定?所确定?83.1.2. 指令字长指令字长定长指令格式定长指令格式变长指令格式变长指令格式便于控制便于控制(1) 定长操作码定长操作码各指令各指令的位置、位数固定相同。的位置、位数固定相同。(2 2)扩展操作码)扩展操作码各指令各指令的位置、位数不固定,根据需要变化。的位置、

5、位数不固定,根据需要变化。合理利用存储空间合理利用存储空间1. 操作码结构操作码结构关键在设置扩展标志。关键在设置扩展标志。-由操作码判定由操作码判定扩展操作码技术扩展操作码技术【例】设某机器指令长度为16位,包括1个操作码字段和3个地址码字段,每个字段长度均为4位。现在要求扩展为15条三地址指令、15条二地址指令、15条一地址指令及16条零地址指令。试给出扩展操作码的方案。 该指令格式如下:OPA1操作码字段地址码字段A2A3地址码字段地址码字段15 12 11 8 7 4 3 0 10操作码操作码 地址码地址码 15 12 11 8 7 4 3 00000 0000 X X Y Y Z Z

6、 1110 1110 X X Y Y Z Z.11111111 0000 0000 Y ZY Z 1111 1111 1110 1110 Y ZY Z.三地址指令三地址指令 1515条条二地址指令二地址指令 1515条条11111111 11111111 0000 0000 Z Z 1111 11111111 1111 1110 1110 Z Z.一地址指令一地址指令 1515条条11111111 11111111 11111111 0000 0000 1111 11111111 1111 11111111 1111 1111.零地址指令零地址指令 1616条条操作码扩展标志操作码扩展标志(可

7、以有多种分配方案可以有多种分配方案)OP A1 A2 A311(3)复合型操作码)复合型操作码操作码分为几部分,每部分表示一类操作。操作码分为几部分,每部分表示一类操作。例例. .某计算机的算逻指令某计算机的算逻指令0 1 2 3 4 5 6 7 8 15基本操作基本操作 进位进位 移位移位 回送回送 判跳判跳 操作数操作数12 3.1.3 指令的地址码指令的地址码 指令中提供的地址指令中提供的地址存储单元地址码存储单元地址码寄存器编号寄存器编号(1)指令提供地址的方式)指令提供地址的方式显地址方式显地址方式隐地址方式隐地址方式: 指令中明显指明地址。指令中明显指明地址。: 地址隐含约定地址隐

8、含约定,不出现在指令中。不出现在指令中。13(2) 地址结构的简化地址结构的简化操作数操作数地址地址 四地址结构指令四地址结构指令格式:格式:使用使用隐地址隐地址可以减少指令中的地址数,可以减少指令中的地址数,简化简化地址结构地址结构。 D1 D2 D3 D4 D1 D2 D3 D4结果结果地址地址下条指下条指令地址令地址功能:功能: (D1)(D1)(D2) D3(D2) D3(D4) (D4) 下条指令下条指令用指令计数器用指令计数器PC(PC(也称也称: :指令指针指令指针) )指示指示指令地址。指令地址。注释注释: 寄存器级的寄存器级的传送形式表示传送形式表示(D1)表示按表示按D1地

9、址地址所读取的内容所读取的内容(即操即操作数作数)14三地址结构指令三地址结构指令格式:格式:操作数操作数地址地址 D1 D2 D3 D1 D2 D3 结果结果地址地址下条指令地址下条指令地址转移时,用转移地址转移时,用转移地址修改修改PC内容。内容。功能:功能: (D1)(D1)(D2) D3(D2) D3(PC) + 1 PC(PC) + 1 PC源源/目的目的二地址结构指令二地址结构指令格式:格式: D1 D2 D1 D2 目的目的/源源功能:功能: (D1)(D1)(D2) D2/D1(D2) D2/D1(PC) + 1 PC(PC) + 1 PC注意注意: 1) 这里这里1-代表代表

10、1条指条指令的字节数令的字节数2) 后继指令地址是隐后继指令地址是隐含地址含地址, PC内容增量内容增量计数也是隐含约定的计数也是隐含约定的15双操作数:双操作数:一地址结构指令一地址结构指令格式:格式: D1 D1 隐含约定隐含约定单操作数:单操作数:功能:功能:(D1)(D1)(A) A(A) A(PC) + 1 PC(PC) + 1 PC(D1) D1(D1) D1(PC) + 1 PC(PC) + 1 PC比如比如:有些机型有些机型CPU中设置累加中设置累加器器AC, 其中一个操作数其中一个操作数(目目的操作数的操作数)由由AC提供提供, 运算运算结果也存于结果也存于AC中中.16例例

11、.ADD.ADD;执行前:执行前:低低SPSP101020204646SPSP30304646执行后:执行后:高高低低高高零地址结构指令零地址结构指令格式:格式: 功能:功能: 无需操作数无需操作数,如如:NOP, HALT等等 隐含约定的单操作数指令隐含约定的单操作数指令 用于堆栈或特殊指令操作。用于堆栈或特殊指令操作。17由以上可看出由以上可看出: : 隐地址可以简化指令的地隐地址可以简化指令的地址结构址结构, ,减少指令中的显地址数减少指令中的显地址数. .思考:思考: 隐地址会对地址选择带来隐地址会对地址选择带来一定限制一定限制, 那么显地址多少个那么显地址多少个合适合适?183.1.

12、4 指令的操作码指令的操作码 前面我们已经知道:计算机所执行的何种操作是由前面我们已经知道:计算机所执行的何种操作是由“指令中的操作码指令中的操作码”所决定的。所决定的。 目前,在指令操作码设计中采用目前,在指令操作码设计中采用“定长、变长和单定长、变长和单功能型、复合型操作码功能型、复合型操作码”191、定长操作码、定长操作码 变长指令码变长指令码2、变长操作码、变长操作码 定长指令码定长指令码3、单功能型或复合型操作码、单功能型或复合型操作码203.1.5 指令系统的设计指令系统的设计P67213.2 指令和数据的指令和数据的寻址方式寻址方式 ( (书书P68)P68) 寻址方式是指寻址方

13、式是指寻找操作数或操作数寻找操作数或操作数地址的方式地址的方式。223.2.1 指令的寻址方式指令的寻址方式1、顺序寻址方式、顺序寻址方式 通常采用一地址计数器如通常采用一地址计数器如PC(PC=PC+1)完成。)完成。计算机的工作过程是:取指令计算机的工作过程是:取指令分析(解释)分析(解释)-执行。执行。2、跳跃寻址方式、跳跃寻址方式 通常是转移指令(条件或无条件,如通常是转移指令(条件或无条件,如C语言的语言的IF 语句。语句。233.2.2 操作数的寻址方式操作数的寻址方式 操作数不像指令那样按顺序存储在主存中,因为操操作数不像指令那样按顺序存储在主存中,因为操作数会来自某一存储单元或

14、某一程序或某一变量作数会来自某一存储单元或某一程序或某一变量.24 (1) 包含在该指令包含在该指令, 由指令直接给出操作数由指令直接给出操作数(2) 在在CPU的某个的某个R中中,指令中给出指令中给出R号号操作数可能存放的位置操作数可能存放的位置:25(3) 在在M某单元中某单元中,指令中给出主存单元地址码指令中给出主存单元地址码(4) 在堆栈中在堆栈中,可以隐含约定由栈顶指针可以隐含约定由栈顶指针SP提供地址提供地址(5) 在某个在某个I/O接口接口R中中(非非CPU中的中的R)26执行一条指令所进行的步骤:执行一条指令所进行的步骤: 取指令取指令 取源操作数取源操作数 取目的操作数取目的

15、操作数 执行运算操作执行运算操作 存放结果存放结果27操作码操作码 立即数立即数S S1、立即寻址、立即寻址指令直接给出操作数。指令直接给出操作数。定长格式:定长格式:变长格式:变长格式:基本指令基本指令 立即数立即数S S立即寻址主要用来提供常数、设置初值等。立即寻址主要用来提供常数、设置初值等。操作数在指令操作数在指令中,其长度固中,其长度固定、有限。定、有限。操作数在基本指令之操作数在基本指令之后,其长度可变。后,其长度可变。28操作码操作码 有效地址有效地址D D 2 、直接寻址、直接寻址指令直接给出操指令直接给出操作数地址。作数地址。存储单元号存储单元号寄存器号寄存器号( (数在数在

16、M M中中) )( (数在数在R R中中) ) 存储器直接寻址存储器直接寻址(直接寻址)(直接寻址)定长格式定长格式D D的位数有限的位数有限, ,访存范围受限访存范围受限变长格式变长格式 基本指令基本指令 D DL L D DH HD D的位数可覆盖的位数可覆盖整个存储空间整个存储空间操作数操作数S =S =(D D)29 【例3-2】指令中所给的地址码EA为“2001H”,按照存储器直接寻址方式读取操作数。主存中部分地址与相应单元存储的操作数之间的对应关系如下: 地址 存储内容 2000H 3BA0H 2001H 1200H 2002H 2A01H 解:解:因为存储器直接寻址方式中,指令中

17、的有效地址即主存中存储操作数的地址,所以地址为“2001H”的存储单元中的内容“1200H”即操作数。 本例实现了:操作数地址 操作。 M30操作码操作码 寄存器号寄存器号R R 存储单元号存储单元号寄存器号寄存器号( (数在数在M M中中)-)-存储器间址存储器间址( (数在数在M M中中)-)-寄存器间址寄存器间址 寄存器直接寻址寄存器直接寻址 (寄存器寻址(寄存器寻址 书书P70)格式格式 R R号的字段所占位号的字段所占位数少;数少; 访问访问R R比访问比访问M M快快S =S =(R R)用于访问固定的存储单元或寄存器。用于访问固定的存储单元或寄存器。3 、间接寻址、间接寻址指令给

18、出操作数的间接地址。指令给出操作数的间接地址。例例3-3 3-3 实现了:实现了:寄存器号寄存器号操作数操作数R31格式格式 存储器间址存储器间址操作码操作码 间接地址间接地址D D S =(D)S =(D)D=0030D=003000600060.00600060 S S M间址单元间址单元地址指针地址指针书书P71, P71, 例例3-43-4间址单元地址间址单元地址操作数地址操作数地址MM操作数操作数特点特点: : 间址单元内容的修改可以使同一间址单元内容的修改可以使同一条指令指向不同存储单元中的操作数条指令指向不同存储单元中的操作数, ,实现实现程序的循环和程序的共享程序的循环和程序的

19、共享. . 增加访问次数增加访问次数, ,减慢速度减慢速度. .32操作码操作码 寄存器号寄存器号R R 寄存器间址寄存器间址格式格式R R所占位数少;所占位数少;R R可提供全字长地址码;可提供全字长地址码;修改修改R R内容比修改内容比修改M M内容快。内容快。S =(R)S =(R)R=02R=02 M0040004000400040 S S. .地址指针地址指针书书P72, P72, 例例3-53-5结合讲结合讲寄存器号寄存器号操作数地址操作数地址RM操作数操作数33特点特点: 指针不变指针不变(由指令指定由指令指定),指针内容可变,使同一,指针内容可变,使同一指令可指向不同存储单元,

20、以实现指令可指向不同存储单元,以实现程序的循环程序的循环、共共享享,并,并提供转移地址提供转移地址。 比存储器间址方式少访问一次主存储器比存储器间址方式少访问一次主存储器.速度快速度快. 指令中寄存器号位数比主存地址码位数少指令中寄存器号位数比主存地址码位数少.两种变形两种变形: 自增型寄存器间址自增型寄存器间址 自减型寄存器间址自减型寄存器间址34寄存器号寄存器号操作数地址操作数地址RM操作数操作数R内容加内容加11) 自增型寄存器间址自增型寄存器间址2) 自减型寄存器间址自减型寄存器间址寄存器号寄存器号R内容先减内容先减1, 减后的结果为减后的结果为操作数地址操作数地址RM操作数操作数35

21、 堆栈是一种特殊的存储器,访问堆栈必须按堆栈是一种特殊的存储器,访问堆栈必须按照指定的规则进行操作。照指定的规则进行操作。用途用途:主要用于暂存数据以及在过程调用或处:主要用于暂存数据以及在过程调用或处理中断时保存断点信息。理中断时保存断点信息。堆栈的基本概念堆栈的基本概念 堆栈寻址堆栈寻址堆栈一般分为:堆栈一般分为:和和专用堆栈存储器专用堆栈存储器软件堆栈软件堆栈按堆栈的工作方式专门设计的存储器按堆栈的工作方式专门设计的存储器专用堆栈存储器:专用堆栈存储器:软件堆栈:软件堆栈: 由程序设计人员用软件在主存储器中划出的由程序设计人员用软件在主存储器中划出的一块存储区作为堆栈来使用。一块存储区作

22、为堆栈来使用。36堆栈堆栈已存放数据已存放数据 栈顶栈顶 栈底栈底.主存主存00000H00000H 堆栈的一端是固定的,称为堆栈的一端是固定的,称为栈底栈底。栈底是堆栈存储区的最大。栈底是堆栈存储区的最大地址单元(自底向上生长)。地址单元(自底向上生长)。 另一端是浮动的,称为另一端是浮动的,称为栈顶栈顶。在任何时刻,栈顶是最后存入信在任何时刻,栈顶是最后存入信息的存储单元。栈顶随着堆栈中息的存储单元。栈顶随着堆栈中存放信息的多少而改变。存放信息的多少而改变。 为了指示当前堆栈中存放数据位置,通常设置一为了指示当前堆栈中存放数据位置,通常设置一个寄存器来指示栈顶位置。其内容就象一个指针一个寄

23、存器来指示栈顶位置。其内容就象一个指针一样,因此被称为堆栈指针样,因此被称为堆栈指针SPSP(Stack PointerStack Pointer)。)。SPSP的内容始终指向栈顶单元的内容始终指向栈顶单元堆栈中数据进堆栈中数据进/ /出都由出都由SPSP来控制来控制37 堆栈中存取数据的规则是:堆栈中存取数据的规则是:“先进后出先进后出FILOFILO”(First-In-Last-OutFirst-In-Last-Out)。即最先送入堆栈的数据要到)。即最先送入堆栈的数据要到最后才能取出,而最后送入堆栈的数据,最先取出。最后才能取出,而最后送入堆栈的数据,最先取出。堆栈寻址格式:堆栈寻址格

24、式:操作码操作码 堆栈指针堆栈指针SP SP SPSP. S S.S =(SP)S =(SP) M M00700070.栈顶栈顶SPSP既可出现在指令中,也可隐含约定。既可出现在指令中,也可隐含约定。压栈:压栈: SPSP自动减自动减1 1,再存数。,再存数。先取数,先取数,SPSP再自动加再自动加1 1。出栈:出栈:(SP),自减型间址自减型间址。(SP)+,自增型间址自增型间址。38 变址寻址变址寻址(4 4)变址、基址寻址及其变化)变址、基址寻址及其变化 ( (书书P64)P64)变址寄存器号变址寄存器号S =(S =(R(RX X) )+ + D D) )格式格式操作码操作码 R RX

25、 X D D 形式地址形式地址修改量修改量( (可变可变) ) 基准地址基准地址( (不变不变) )指令给出一个寄存器号和一个地址量,寄存指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。器内容与地址量之和为有效地址。 若把若把SP寄存器改为其它寄存器,则就是自减型寄寄存器改为其它寄存器,则就是自减型寄存器间址,存器间址,(R); 自增型寄存器间址自增型寄存器间址 (R) 。(图示图示: P64 图图3-11)39 为了能覆盖全部存储区间,形式地址为了能覆盖全部存储区间,形式地址D D的必须的必须足够长。但由于足够长。但由于D D的位数有限,会使访存空间受的位数有限,会使访存

26、空间受到限制到限制。例例. 用变址方式访问一组连续区间内的数组元素。用变址方式访问一组连续区间内的数组元素。D=D=首址首址D为存储区首址;为存储区首址;(R(RX X) )为所为所访单元距离首址的长度;访单元距离首址的长度;R RX X初值为初值为0 0,每访问一个单,每访问一个单元,元,(R(RX X)+1)+1。n-1n-1.0 01 12 2.D+1D+1D+2D+2D+n-1D+n-1 .40格式格式(D的位数只需覆盖一的位数只需覆盖一个较小的存储区间)个较小的存储区间) 基址寻址基址寻址基址寄存器号基址寄存器号R Rb b 4K 4K指令给出一个寄存器号和一个地址量,寄存指令给出一

27、个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。器内容与地址量之和为有效地址。操作码操作码 R Rb b D D 位移量位移量S =(S =(R(Rb b) )+ + D D) )基准地址基准地址( (可变可变) )相对于基址的位移相对于基址的位移( (不变不变) ) M.R Rb b 4K 4K 改变改变Rb的内容,程序能访问存储的内容,程序能访问存储空间中任何一个定长区间空间中任何一个定长区间( (如指令中如指令中位移量位移量D D的位数为的位数为1212位位, ,可访可访4K)4K)。41例例. .便于访问两维数组中某类便于访问两维数组中某类指定的元素。指定的元素。 4K 4K

28、 4K 4KR Rb b M.R Rb bD=2D=2D=2D=2学生姓名学生姓名n性别性别性别性别年龄年龄年龄年龄学生姓名学生姓名1例例. 程序重定位问题程序重定位问题例例. 扩展有限字长的寻址空间扩展有限字长的寻址空间42变址与基址的主要区别:变址与基址的主要区别:变址变址:指令提供:指令提供基准量基准量( (不变不变) )位数较长,位数较长,R R提供提供修改量修改量( (可可变变) );适于处理一维数组。;适于处理一维数组。基址基址:指令提供:指令提供位移量位移量( (不变不变) )较短较短,R R提供提供基准量基准量( (可变可变) );用于扩大有限字长指令的访用于扩大有限字长指令的

29、访存空间。存空间。思考:思考: 表面上看表面上看, 基基址寻址和变址寻址寻址和变址寻址的有效地址计址的有效地址计算几乎一样算几乎一样! 那那这两种方式区别这两种方式区别在哪呢在哪呢?43S =(RS =(RX X)+(R)+(Rb b)+ D)+ D)格式格式 基址加变址基址加变址变址寄存器号变址寄存器号指令给出两个寄存器号和一个地址量,寄存器内指令给出两个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。容与地址量之和为有效地址。位移量位移量操作码操作码 R RX X R Rb b D D 基址寄存器号基址寄存器号便于处理两维数组。便于处理两维数组。44格式格式 相对寻址相对寻址指令给

30、出位移量,指令给出位移量,PCPC内容与位移量之和为有效地址。内容与位移量之和为有效地址。位移量位移量操作码操作码 PCPC D D 或隐含指定或隐含指定S =(PC)S =(PC)D)D)D的取值可为正负,的取值可为正负,因此有效地址就相对因此有效地址就相对PCPC上下浮动上下浮动, ,给编程给编程带来方便带来方便。45格式格式 页面寻址(页面寻址(P66)指令给出位移量指令给出位移量D,PCPC的高位部分的高位部分与与D拼接,形成拼接,形成有效地址。有效地址。位移量位移量操作码操作码 PCPC D D 或隐含指定或隐含指定S =(S =(PC)(PC)H H,D D) )例例. M为为64

31、KB,划分为,划分为256页,每页页,每页256B。页号页号页内地址页内地址PC0165H7C.017CHS页面寻页面寻址指令址指令位移量位移量46 用于页式管理存储系统。用于页式管理存储系统。 寻址速度快,适于组织程序模块,寻址速度快,适于组织程序模块, 有效利用存储空间。有效利用存储空间。思考思考:页面寻址方式页面寻址方式, 用用PC的高位部分多少的高位部分多少位进行拼接位进行拼接?回答回答:要看主存分为多少个页要看主存分为多少个页?页的数量用多少位来表页的数量用多少位来表示示,就将就将PC的高若干位截的高若干位截下下.1. 要看主存规定每个页有要看主存规定每个页有多少容量多少容量, 页容

32、量用多少页容量用多少位来表示位来表示,形式地址就应形式地址就应该为多少位该为多少位,与与PC高位截高位截下的部分进行拼装下的部分进行拼装.472. 指令中对寻址方式表示指令中对寻址方式表示 (1 1)用操作码隐含说明不同寻址方式)用操作码隐含说明不同寻址方式例例. .某机指令用操作码最高两位来指示寻某机指令用操作码最高两位来指示寻址方式址方式0000:RRRR型指令,寄存器型指令,寄存器- -寄存器寻址寄存器寻址0101:RXRX型指令,寄存器型指令,寄存器- -变址寻址变址寻址1010:SISI型指令,基址型指令,基址- -立即寻址立即寻址1111:SSSS型指令,基址型指令,基址- -基址

33、寻址基址寻址48(2 2)指令中设置专门字段说明寻址方式)指令中设置专门字段说明寻址方式例例. .某机指令的每个地址字段中各设置一个某机指令的每个地址字段中各设置一个3 3位的寻址方式字段。位的寻址方式字段。操作码操作码 寻址方式寻址方式 R R 寻址方式寻址方式 R R 源地址字段源地址字段目的地址字段目的地址字段3位位3位位493.3 指令类型指令类型 3.3.1 指令系统的设计原则 指令系统是程序设计者看机器的主要属性,是软、硬件的主要界面,它在很大程度上决定了计算机具有的基本功能。设计和确定指令系统主要应考虑如何有利于满足系统的基本功能,有利于优化机器的性能价格比有得指令系统今后的发展

34、与改进。50 指令系统的设计包括指令的功能(操作类型、寻址方式和具体操作内容)和指令格式的设计,应当由编译程序设计人员同系统结构设计人员共同配合来进行。(1)根据应用,初拟出指令的分类和具体的指令;(2)试编出用该指令系统设计的各种高级语言的编译程序;51 (3)各种算法编写大量测试程序进行模拟测试,看指令系统的操作码和寻址方式效能是否比较高。 (4)将程序中高频出现的指令串复合改成一条强功能新指令,即改用硬件方式实现;而将频度很低的指令的操作改成用基本的指令组成的指令串来完成,即用软件方式实现。 52应该遵循的设计原则为: (1) 完备性指令系统要指令丰富、功能齐全、使用方便,具有所有的基本

35、指令。(2) 正交性又称为分离原则或互不相干原则,即指令中各个有不同含义的字段之间,如操作类型、寻址方式、数据类型等,在编码时应互相独立、互不相关。(3) 有效性指用指令系统中的指令编写的程序运行效率高、占用空间小、执行速度快。53 (4) 规整性指指令系统应具有对称性、匀齐性、指令与数据格式的一致性。 对称性要求指令要将所有寄存器和存储单元同等对待,使任何指令都可以使用所有的寻址方式,减少特殊操作和例外情况; 匀齐性要求一种操作可以支持多种数据类型,如字节、字、双字、十进制数、浮点数等; 指令与数据格式的一致性要求指令长度与机器字长和数据长度有一定的关系,便于指令和数据的存取及处理。54 (

36、5) 兼容性 为满足软件兼容的要求,系列机的各种机型之间应该具有基本相同的指令集,即指令系统应该具有一定的兼容性,至少要做到向后兼容。也就是说,后推出的机器上可以运行先推出的机器上的程序。(6) 可扩展性一般来讲,后推出的机型中总要添加一些新的指令,所以要保留一定余量的操作码空间,以便日后进行扩展所用。 553.3.1 3.3.1 数据传送指令数据传送指令 ( (书书P75)P75)源地址源地址 目的地址目的地址数数设置时需考虑:设置时需考虑:(1 1)规定传送范围)规定传送范围例例. DJS-100. DJS-100系列:系列: 8 80 0X86X86: IBM370 IBM370:R R

37、 M MR R M M,R R R RR R M M,R R R R,M M M M解释解释:传送指令传送指令,就是就是”复复制制”指令指令.主存中数据复制主存中数据复制,还可以被多次使还可以被多次使用用.1. 堆栈指针下移堆栈指针下移,视视为数据不在存在为数据不在存在.56(2 2)指明传送单位)指明传送单位例例. . 用操作码说明用操作码说明(VAX-11)(VAX-11):用地址量说明用地址量说明(8(80 0X86)X86):传送次数由传送次数由计数器控制计数器控制MOVMOVB B 8 8MOV MOV AXAX,BXBX MOVMOVW W 1616MOVMOVL L 3232MO

38、V MOV ALAL,BLBL MOV MOV EAXEAX,EBXEBX 例例. 80X86. 80X86的串传送指令:的串传送指令:REPREP MOVSWMOVSW(3 3)设置寻址方式)设置寻址方式在寻址方式的设置上几乎不受限制,能比较在寻址方式的设置上几乎不受限制,能比较集中地反映指令系统各种寻址方式的实现。集中地反映指令系统各种寻址方式的实现。8 81616323257D70IRQ0地址线地址线寄存器选择寄存器选择 命令字命令字R 状态字状态字R数据缓冲器数据缓冲器 控制逻辑控制逻辑数据线数据线数据线数据线数据线数据线中断控制器中断控制器INTINTA命令命令IRQ7状态状态数据数

39、据外部设备外部设备系统总线系统总线(8259)IRQi M MCPUCPU主机板主机板接口板接口板3.3.43.3.4输入输入/ /输出指令输出指令各种信息各种信息主机主机 外设外设信息包括信息包括: :数据数据命令命令状态状态 输入输出指令输入输出指令主机对外设的访问主机对外设的访问对外设接口寄存器的访问对外设接口寄存器的访问解释解释:外设多外设多,具体操作多样具体操作多样,事先无法确知事先无法确知.只有只有I/O指令向接口发指令向接口发送命令字送命令字,再转化为与再转化为与具体设备匹配的命令具体设备匹配的命令.58D70IRQ0地址线地址线寄存器选择寄存器选择 命令字命令字R 状态字状态字

40、R数据缓冲器数据缓冲器 控制逻辑控制逻辑数据线数据线数据线数据线数据线数据线中断控制器中断控制器INTINTA命令命令IRQ7状态状态数据数据外部设备外部设备系统总线系统总线(8259)IRQi M MCPUCPU主机板主机板接口板接口板n 命令字寄存器命令字寄存器接收接收CPUCPU发向外设的命令发向外设的命令字,转换为相应操作命字,转换为相应操作命令送外设。令送外设。n 状态字寄存器状态字寄存器反映设备和接口的运行反映设备和接口的运行状态。状态。n 数据缓冲器数据缓冲器主机和外设之间需要传主机和外设之间需要传送数据。送数据。59设置时设置时I/O指令时需考虑如下因素:指令时需考虑如下因素:

41、(1 1)I/OI/O指令的功能扩展指令的功能扩展如何用通用如何用通用I/OI/O指令实现对各种具体设备的控制?指令实现对各种具体设备的控制? I/O I/O指令中留有扩展余地指令中留有扩展余地指令中某些字段编码事先不定义,需要时再约指令中某些字段编码事先不定义,需要时再约定其含义。定其含义。用于外设种类、数量不多的场合。用于外设种类、数量不多的场合。(2 2)主机对外设的寻址方式)主机对外设的寻址方式(3 3)I/OI/O指令设置方式指令设置方式(1 1)I/OI/O指令的功能扩展指令的功能扩展60(2 2)主机对外设的寻址方式)主机对外设的寻址方式如何设置控制如何设置控制/ /状态寄存器是

42、接口设计的关键。状态寄存器是接口设计的关键。寻找寻找I/OI/O接口中的寄存器的方式。接口中的寄存器的方式。 主机用主机用输出指令输出指令或或传送指令传送指令将具体设备的控制命令将具体设备的控制命令按约定的代码格式按约定的代码格式, ,作为输出数据送往接口中的作为输出数据送往接口中的控制控制寄存器寄存器,向外设发出命令。,向外设发出命令。 外设的状态信息也以某种格式放在接口的外设的状态信息也以某种格式放在接口的状态寄存状态寄存器器中,主机用中,主机用输入指令输入指令或或传送指令传送指令从从状态寄存器状态寄存器中取中取出有关信息进行查询、分析。出有关信息进行查询、分析。如何为如何为I/OI/O端

43、口分配地址?端口分配地址?I/O端口端口 I/O I/O接口中设置控制接口中设置控制/ /状态寄存器状态寄存器61 单独编址单独编址I/OI/O地址空间不占主存空间,可与主存空间重叠。地址空间不占主存空间,可与主存空间重叠。=1 =1 访问存储器访问存储器=0 =0 访问访问I/OI/O端口端口需设置标志信号用于区分访问对象,如需设置标志信号用于区分访问对象,如编址到寄存器编址到寄存器:为每个寄存器:为每个寄存器(I/O(I/O端口端口) )分配独分配独 立的端口地址;立的端口地址; I/OI/O指令中给出端口地址。指令中给出端口地址。M/IOM/IO62 统一编址统一编址I/OI/O端口占据

44、部分地址空间。端口占据部分地址空间。常将地址空间的低端分配给主存单元,高端分配常将地址空间的低端分配给主存单元,高端分配给给I/OI/O端口,以示区分。端口,以示区分。编址到寄存器编址到寄存器u 设置设置专用专用I/OI/O指令指令针对单独编址,用针对单独编址,用I/OI/O指令访问指令访问I/OI/O端口。端口。指令中说明输入指令中说明输入/ /输出操作,并给出端口地址。输出操作,并给出端口地址。 :为每个寄存器:为每个寄存器(I/O(I/O端口端口) )分配总分配总 线地址;线地址; 访问外设时,指令中给出总线地址。访问外设时,指令中给出总线地址。(3 3)I/OI/O指令设置方式指令设置

45、方式显式显式I/OI/O指令指令63例例. 80X86. 80X86的的I/OI/O指令设置指令设置 输入:输入:IN ALIN AL,n n;端口地址端口地址(n) AL(n) AL( (直接端口寻址直接端口寻址) ) IN ALIN AL,DXDX;间接端口地址间接端口地址(DX) AL(DX) AL( (间接端口寻址间接端口寻址) ) 输出:输出:OUT nOUT n,ALAL;(AL) n(AL) n( (直接端口寻址直接端口寻址) ) OUT DXOUT DX,ALAL;(AL) (DX)(AL) (DX)( (间接端口寻址间接端口寻址) )64主机调用输入机:主机调用输入机:u 用

46、用传送指令传送指令实现实现I/OI/O操作操作针对统一编址,用传送指令访问针对统一编址,用传送指令访问I/OI/O端口。端口。不设专用不设专用I/OI/O指令。指令。例例. . 某机某机I/OI/O接口中设置接口中设置控制控制/ /状态寄存器状态寄存器CSRCSR, ,其总线地址为其总线地址为177550177550(8(8进制进制) )数据缓冲寄存器数据缓冲寄存器DBRDBR,其总线地址为,其总线地址为177552177552隐式隐式I/OI/O指令指令控制控制/ /状态字格式:状态字格式:出错出错 故障故障 忙忙 完成完成 允许中断允许中断 维护维护 校验校验 启动启动15 14 12 7

47、 6 2 1 015 14 12 7 6 2 1 0启动:启动:测试:测试:存存/ /取数:取数:主机主机 177550177550控制字控制字( (启动位为启动位为1)1)传送指令传送指令主机主机 177550177550 状态字状态字传送指令传送指令主机主机 177552177552 数据数据传送指令传送指令65u 通过通过I/OI/O处理机进行处理机进行I/OI/O操作操作CPUCPU执行简单执行简单I/OI/O指令指令 ( (启动、停止、查询、清除启动、停止、查询、清除) )两级两级I/OI/O指令指令I/OI/O处理机执行处理机执行I/OI/O操作指令操作指令 ( (输入、输出输入、

48、输出) )由例可见由例可见, ,在通用传送指令中在通用传送指令中, ,并不直接包含外并不直接包含外设的启动命令设的启动命令, ,通过数据总线向接口中的命令通过数据总线向接口中的命令R R送命令字送命令字( (包含启动位包含启动位),),这样来启动外围设备这样来启动外围设备. .66u 设置时需考虑设置时需考虑操作数类型操作数类型、符号符号、进制进制等;等;(1 1)算术运算指令)算术运算指令3.3.2 3.3.2 算术逻辑运算指令算术逻辑运算指令(2 2)逻辑运算指令)逻辑运算指令实现对代码位的实现对代码位的设置设置、测试测试、清除清除、分离分离、修改修改等等与与或或异或异或u 加加, ,减减

49、, ,加加1,1,减减1,1,求补求补, ,比较大小比较大小, ,乘乘, ,除除, ,向量或向量或矩阵求和求级矩阵求和求级等等u 运算结束后设置相应运算结束后设置相应状态标志状态标志。67 4.逻辑运算类指令逻辑运算类指令 计算机中常设置的4种基本逻辑运算有逻辑与(如AND)、逻辑或(如OR)、逻辑非(如NOT)及逻辑异或(如XOR)。在这4个运算操作中,除了NOT只需要一个操作数地址外,其他三个均需要两个地址。对于位测试、位清除、位设置、位修改等位操作,有的计算机设置; 专门的位操作指令,而有的则通过逻辑运算指令来实现。68 (1) 利用逻辑“与”运算实现位测试位测试是指测试某指定位是否为“

50、1”。将被检测代码作为目的操作数,根据被检测位设置相应的屏蔽字,并作为源操作数。设置屏蔽字时,对应于被检测位的屏蔽位置“1”,其余置“0”,然后将两代码相“与”。运算后的结果中,由于只有被检测位保持原来状态,其余位均被屏蔽为“0”,所以可对被检测位进行测试。如目的操作数为“11101011”,对其中的“1”做测试,可设置屏蔽字为“00001000”,将两代码相“与”后可知被测位为“1”。69 例如,Intel8086指令系统中的逻辑运算指令:TEST AL,08H; 将寄存器AL中的操作数与“00001000H”相“与”,若结果为全零,表示AL3=0;否则AL3=1。 (2) 利用逻辑“或”运

51、算实现位设置 位设置是将指定位设置为“1”。设置屏蔽字的时候,对应于设置位的屏蔽位置“1”,其余位置“0”,然后将两个代码相“或”。70 5.移位操作指令移位操作指令 按照移位的方向不同可以分为左移和右移,按照移位的方式不同可以分为算术移位、逻辑移位和循环移位,实现对操作数左移或右移一位或若干位。移位类指令一般只需要一个操作数地址。对于算术移位指令,对象是具有数值大小的数据,移位后数值的大小会发生变化。在计算机中对于二进制数,左移不发生溢出时,符号位保持不变;右移时,符号位保持不变,数值位连同符号位一起依次右移。左移一位可以实现乘2运算,右移一位可以实现除2运算。71 逻辑移位是将移位对象看作

52、没有数值大小的一组代码,左移时最低位添“0”,右移时最高位添“0”。一般地,将移位时所移出的位保存在状态寄存器的进位位C中。循环移位分为小循环(不带进位,自身循环)和大循环(和进位位C一起循环),常与算术逻辑移位指令一起实现多倍字长的移位。72控制程序流程。控制程序流程。(1 1)转移指令)转移指令3.3.3 3.3.3 程序控制指令程序控制指令(2 2)转子指令与返回指令)转子指令与返回指令转子:操作码转子:操作码 子程序入口子程序入口无条件转移无条件转移条件转移条件转移循环循环:操作码:操作码 转移地址转移地址:操作码:操作码 转移地址转移地址 转移条件转移条件:转移条件为循环计数值:转移条件为循环计数值返回:操作码返回:操作码 返回地址返回地址同一条返回指令应能提供多个不同的返回地址。同一条返回指令应能提供多个不同的返回地址。返回地址的存取:返回地址的存取:用堆栈存放返回地址。用堆栈存放返回地址。73(3 3)软中断指令)软中断指令程序程序自陷指令自陷指令表示不同的功能调用表示不同的功能调用调试程序调试程

温馨提示

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

最新文档

评论

0/150

提交评论