书签 分享 收藏 举报 版权申诉 / 71
上传文档赚钱

类型指令系统课件.ppt(71页)

  • 上传人(卖家):三亚风情
  • 文档编号:2239515
  • 上传时间:2022-03-24
  • 格式:PPT
  • 页数:71
  • 大小:514.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《指令系统课件.ppt(71页)》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    指令系统 课件
    资源描述:

    1、第5章 指令系统5.1 指令系统的发展指令系统的发展5.2 指令格式指令格式5.3 数据表示数据表示5.4寻址方式(编址方式)寻址方式(编址方式)5.5 指令类型指令类型5.6 指令系统的兼容性指令系统的兼容性(略略)5.7 RISC和和CISC(略略)5.8 指令系统举例指令系统举例(略略)5.9 机器语言、汇编语言和高级语言机器语言、汇编语言和高级语言(略略)学习目的1. 了解指令格式、数据表示。2. 掌握不同寻址方式(编址方式)中部件之间的动作关系,可能的时间分配。3. 了解指令类型、指令系统的兼容性和精简指令系统计算机(RISC)、复杂指令系统计算机(CISC)的有关概念、特性等。本章

    2、重难点1、指令系统的定义、作用2、指令格式3、寻址方式5.1 指令系统的发展指令系统的发展 计算机系统: 硬件(hardware)+软件(software) 硬件硬件: 中央处理机(CPU)、存储器、外部设备 软件软件: 程序 (最终转换成一系列机器指令后在计算机上执 行)指令系统的定义指令系统的定义: :一台计算机能直接识别并执行的机器指 令的集合。指令系统的作用:指令系统是硬件设计的任务书,是软件设计的基础,与计算机的性能有密切关系。 1. 20世纪世纪50年代和年代和60年代早期年代早期:指令系统一般只有指令系统一般只有定点加减、逻辑运算、数据传送和转定点加减、逻辑运算、数据传送和转移移

    3、等十几至几十条等十几至几十条最最基本的指令,基本的指令,而且而且寻址方式简单寻址方式简单。2.到到60年代中、后期年代中、后期:除了具有以上最基本的指令以外,还设置了除了具有以上最基本的指令以外,还设置了乘除法运乘除法运算指令、浮点运算指令、十进制运算指令以及字符串处理指算指令、浮点运算指令、十进制运算指令以及字符串处理指令等,指令数多达一、二百条,寻址方式也趋于多样化令等,指令数多达一、二百条,寻址方式也趋于多样化。3. 60年代出现了系列年代出现了系列(series)计算机。计算机。 原因:为了继承已有的软件,减少软件的开发费用.系列计算机系列计算机:是指基本指令系统相同,基本体系结构相同

    4、的一系列计算机。如IBM370系列,VAX11系列,IBMPC(XTAT286386486Pentium)微机系列等。优点:在旧机种上运行各种软件可以不加任何修改地在新机种上运行。(向下兼容向下兼容)随着随着VLSI技术的发展,硬件结构越来越复杂,技术的发展,硬件结构越来越复杂,所支持的指令系统也趋于多用途、强功能化。所支持的指令系统也趋于多用途、强功能化。指令系统的改进是围绕着缩小指令与高级语言的指令系统的改进是围绕着缩小指令与高级语言的语义差异以及有利于操作系统的优化而进行的。语义差异以及有利于操作系统的优化而进行的。 CISC(复杂指令系统计算机复杂指令系统计算机)的问题的问题:(1)设

    5、计周期长,正确性难以保证且不易维护等;(2) 需要大量硬件支持的大多数较复杂的指令却利用率很低,造成硬件资源的极大浪费。 为了解决这个问题,在为了解决这个问题,在70年代末人们提出了便于年代末人们提出了便于VLSI实现实现的精简指令系统计算机,简称的精简指令系统计算机,简称RISC(精简指令系统计算机精简指令系统计算机)。CISC:Complex instruction set computer RISC: reduced instruction set computer5.2 指令格式指令格式 计算机的计算机的指令格式指令格式与与机器的字长机器的字长、存储器的容量存储器的容量及及指令的功能指

    6、令的功能都都有很大的关系有很大的关系。设计指令格式的要求设计指令格式的要求: (1)使指令能给出足够的信息 (2)其长度又尽可能地与机器的字长相匹配,以便节省存储空间,缩短取指时间,提高机器的性能。 5.2.1 指令格式 一条指令就是要机器语言的一个语句,它是一组有意义的二进制代码,通常提供两方面的信息:一是指明操作的性质及功能,这一部分称为操作码。操作码。二是给出与操作数有关的信息,如:直接给出操作数本身或指明操作数的地址等。因为大多数情况下,指令中给出的是操作数的地址,因此,这一部分称为地址码地址码。 指令的基本格式为:指令的基本格式为: 操作码字段 地址码字段二二 .地址码结构地址码结构

    7、 计算机执行一条指令所需要的全部信息都必须包含在指令中,对于一般的指令来说,除去操作码(OP)之外,指令还应包含以下信息: (1)第一操作数地址,用A1表示 (2)第二操作数地址,用A2表示 (3)操作结果存放地址,用A3表示 (4)下条将要执行指令的地址,用A4表示 这些信息可以在指令中明显给出,称为显地址,也可依照某种事先的约定,用隐含方式给出,称为隐地址。 下面介绍几种指令格式。 1.四地址指令前述的四个地址信息在地址码字段中明显给出。格式:格式:含义:含义: (A1)OP(A2)A3 (A4)=下一条将要执行指令的地址说明:说明: (Ai)表示存放在一地址Ai中的内容优点优点:直观,下

    8、条指令的地址明显,不适合转移指令缺点缺点:指令太长,因为直接给出了后继指令地址,程序不能根据操作结果灵活转移,这种格式不切实际。 OP A1 A2 A3 A42.三地址指令 执行程序时,大多数指令按顺序从主存中逐条取出执行,只有遇到转移指令时,程序的执行顺序才会改变。 为了压缩指令的长度,要以用一个程序计数器PC(program counter)来存放指令地址。每执行一条指令,PC就自动加1(该指令只占一个主存单元),指出将要执行的下一条指令,当遇到执行转移指令时,则用转移地址修改PC的内容,这样,指令中就不必给出A4了。 格式:格式: 含义:含义: (A1)OP (A2)A3 (PC)+1

    9、PC(隐含) 特点特点: 指令仍然很长,只在字长较长的大、中型机中使用,而小型、微型机中很少使用。 OP A1A2A33.二地址指令 三地址指令执行完后,主存的两个操作数均不会被破坏,可供再次使用,然而通常不一定 要完全保留两个操作数。例:把第一操作数地址同时兼作存放结果的地址,这样即可得到二地址指令。 格式:格式: 含义:含义: (A1)OP (A2)A1 (PC)+1 PC(隐含) A1:目的操作数地址 A2:源操作数地址特点特点:二地址:二地址指令在计算机中得到广泛的应用,但要注意:指令执行之后,目的操作数地址中原存的内容已被破坏了。 例: MOVAL,BL OP A1 A24.一地址指

    10、令一地址指令(1)格式:格式:(2)功能:功能: 1)单操作数运算 A1既是操作数的地址,又是结果存放的地址。例:+1、-1、求反等 含义含义: OP(A1)A1 (PC)+1 PC(隐含)例:INC AL DEC CL 2)双操作数 约定:隐含的一个操作数放在一个专用寄存中(AC-累加器) 含义:含义: (AC)OP(A1)(AC) (PC)+1 PC(隐含)例: MULBL(AL)*(BL) (AX)OP A15. 5. 零地址指令零地址指令格式: 无操作数:如空操作NOP、停机指令HLT 默认操作数:如读取标志指令LAHF,将标志寄存器FLAG的低8位送到AH寄存器中。 OP适应范围适应

    11、范围:零地址、一地址和两地址指令具有指令短,执行零地址、一地址和两地址指令具有指令短,执行速度快,硬件实现简单等特点,多为结构较简单,速度快,硬件实现简单等特点,多为结构较简单,字长较短的小型、微型机所采用;字长较短的小型、微型机所采用; 而两地址、三地址和多地址指令具有功能强,而两地址、三地址和多地址指令具有功能强,便于编程等特点,多为字长较长的大、中型机所采便于编程等特点,多为字长较长的大、中型机所采用。用。指令和数据的联系和区别:联系:都是以二进制码的形式存储的。区别:指令的地址是由程序计数器(PC)规定的,而数据的地址是由指令规定的。在程序执行过程中,要避免修改指令,但可以修改数据。一

    12、一.指令字长指令字长定长指令定长指令: :便于控制便于控制变长指令变长指令: :合理利用存储空间合理利用存储空间二二. .操作码格式操作码格式指令系统中的每一条指令都有一个唯一确定的操作码,指令不同,其操作码的编码也不同。为了能表示整个指令系统的全部指令,指令的操作码字段应当具有足够的位数。假定:指令系统有m条指令,指令的操作码字段的位数有N位,则m2N,即Nlog2m.我们希望用尽可能短的操作码字段来表达全部的指令。指令操作码的编码可以分为以下两种形式。5.2.2 指令操作码的扩展技术指令操作码的扩展技术1. 定长操作码各指令的操作码的位置、位数固定相同(即操作码的长度固定,且集中放在指令字

    13、的一个字段中)。特点:这种格式对于简化硬件设计,减少指令译码时间非常有利,在字长较长的大、中型机和超级小型机以及RISC上广泛采用。2.扩展操作码(变长) 各指令操作码的位置、位数不固定,根据需要变化(即操作码的长度可变,且分散得放在指令字的不同字段中) 。 特点:这种格式能够有效地压缩程序中操作码的平均长度,在字长较短的微型机上广泛采用。 如Z80、Intel8086Pentium等,操作码的长度都是可变的。例例. .(方法一)(方法一) 指令字长指令字长1616位,可含有位,可含有3 3、2 2、1 1或或0 0个地址,每个地址占个地址,每个地址占4 4位。(见教材位。(见教材P P130

    14、131130131)操作码操作码 地址码地址码 15 12 11 8 7 4 3 00000 0000 X X Y ZY Z 1110 1110 X Y ZX Y Z.1111111 1 0000 0000 Y Y Z Z 1111111 1 1110 1110 Y Y Z Z.三地址指令 15条二地址指令 15条11111111 1111111 1 0000 0000 Z Z 1111 1111111 1111 1 1110 1110 Z Z.一地址指令 15条11111111 11111111 1111111 1 0000 0000 1111 11111111 1111 1111111 1

    15、 1111 1111.零地址指令 16条可表示可表示61条指令条指令例例. . (方法二)指令字长(方法二)指令字长1616位,可含有位,可含有3 3、2 2、1 1或或0 0个地址,每个地址占个地址,每个地址占4 4位。(见教材位。(见教材P P130131130131)操作码操作码 地址码地址码 15 12 11 8 7 4 3 00000 0000 X X Y ZY Z 1110 1110 X Y ZX Y Z.1111111 1 0000 0000 Y Y Z Z 1111111 1 1101 1101 Y Y Z Z.三地址指令 15条二地址指令 14条11111111 111110

    16、10 0000 0000 Z Z 1111 111111 111111 1110 1110 Z Z.一地址指令 31条11111111 11111111 1111111 1 0000 0000 1111 11111111 1111 1111111 1 1111 1111.零地址指令 16条可表示可表示76条指令条指令 可变长度的指令系统的设计,到底使用何可变长度的指令系统的设计,到底使用何种扩展方法有种扩展方法有一个重要的原则一个重要的原则: 就是使用就是使用频度频度(即指令在程序中的出现概率即指令在程序中的出现概率)高高的指令应分配的指令应分配短短的操作码;使用频度的操作码;使用频度低低的指

    17、令的指令相应地分配较相应地分配较长长的操作码。(的操作码。(霍夫曼编码法霍夫曼编码法) 作用:作用:有效地缩短操作码在程序中的平有效地缩短操作码在程序中的平均长度,节省存储器空间,缩短了经常使均长度,节省存储器空间,缩短了经常使用的指令的译码时间,因而可以提高程序用的指令的译码时间,因而可以提高程序的运行速度。的运行速度。假某计算机模型:假某计算机模型:7条指令条指令(I1I7),程序中出现的概率用,程序中出现的概率用Pi表示,则可考表示,则可考虑表虑表51所示的方案,这就是扩展操作码所示的方案,这就是扩展操作码,使用频率高的指令的操作码,使用频率高的指令的操作码为为2位,低的用位,低的用4位

    18、。位。这不是压缩到最小代码的方案,因为在计算机中的这不是压缩到最小代码的方案,因为在计算机中的操作码还是希望有一定的规整性,否则会引起硬件实现的复杂化。另外,操作码还是希望有一定的规整性,否则会引起硬件实现的复杂化。另外,内存中存放的指令长度一般是字节的整数倍,所以操作码与地址码两部内存中存放的指令长度一般是字节的整数倍,所以操作码与地址码两部分长度之和是字节的整数倍。在考虑分长度之和是字节的整数倍。在考虑OP长度时还要考虑地址码的要求。长度时还要考虑地址码的要求。2.2401.0101.0403.0405.0217.0228.0245.01niiiIP指令的平均长度:由此可见,由此可见,操作

    19、码扩展技术是一种重要操作码扩展技术是一种重要的指令优化技术,的指令优化技术,它可以缩短指令的平均长它可以缩短指令的平均长度,减少程序的总位数以及增加指令字所能度,减少程序的总位数以及增加指令字所能表示的操作信息。表示的操作信息。当然,扩展操作码比固定当然,扩展操作码比固定操作码译码复杂,使控制器的设计难度增大,操作码译码复杂,使控制器的设计难度增大,且需更多的硬件来支持。且需更多的硬件来支持。5.2.3 指令长度与字长的关系指令长度与字长的关系 字长:字长:指计算机能直接处理的二进制数据指计算机能直接处理的二进制数据的位数的位数,它是计算机的一个重要技术指标。,它是计算机的一个重要技术指标。作

    20、用作用:字长决定了计算机的运算精度,字长字长决定了计算机的运算精度,字长越长,计算机的运算精度越高。越长,计算机的运算精度越高。一般机器的字长都是字节长度一般机器的字长都是字节长度(即即8位位)的的l,2,4或或8倍数,也就是倍数,也就是8,16,32或或64位。如位。如80年代微年代微型机的字长多为型机的字长多为8位,位,16位和位和32位,大中型机的字位,大中型机的字长多为长多为32位和位和64位,因此,一个字中可以存储位,因此,一个字中可以存储1,2,4或或8个字符。随着集成度的提高,机器字长也个字符。随着集成度的提高,机器字长也在增长,在增长,16位微机已趋于淘汰。位微机已趋于淘汰。

    21、指令的长度:主要取决于指令的长度:主要取决于操作码的长度操作码的长度、操作数地操作数地址的长度址的长度和和操作数地址的个数操作数地址的个数。各指令的长度不是固。各指令的长度不是固定的,但也不是任意的。定的,但也不是任意的。指令的长度通常为字节的整数倍。指令的长度通常为字节的整数倍。地址码长度决定了指令直接寻址能力。这对于字长较短(8位或16位)的微型机来说,远远满足不了实际需求。扩大寻址能力的方法:1)增加机器字长来增加地址码的长度;2)采用地址扩展技术,把存储空间分成若干段,用基址加位移量的方法来增加地址码的长度。 指令的长度与机器的字长没有固定的关系指令的长度与机器的字长没有固定的关系,它

    22、既可以小于或等于机器的字长,也可以大于机器它既可以小于或等于机器的字长,也可以大于机器的字长。前者称为短格式指令,后者称为长格式指的字长。前者称为短格式指令,后者称为长格式指令,一条指令存放在地址连续的存储单元中。令,一条指令存放在地址连续的存储单元中。在同一台计算机中可能既有短格式指令又有长在同一台计算机中可能既有短格式指令又有长格式指令,但通常是把最常用的指令格式指令,但通常是把最常用的指令(如算术逻辑运如算术逻辑运算指令、数据传送指令算指令、数据传送指令)设计成短格式指令,以便节设计成短格式指令,以便节省存储空间和提高指令的执行速度省存储空间和提高指令的执行速度。 5.3 数据表示1.操

    23、作数的类型操作数的类型逻辑逻辑(布尔布尔)数、定点数数、定点数(整数整数)、浮点数、浮点数(实数实数)、十进制数、十进制数、字符串、数组等字符串、数组等2.操作数的存储方式操作数的存储方式一个数据的位数1字节或1个字的宽度,这个数据就需要存储在相邻的多个字节的位置上。按照高位数据和低位数据在存储器中的存储次序,可分为大数端(大数端(big endian)和小数端()和小数端(little endian)两种存储方式。将最低字节最低字节存储在最小地址位置最小地址位置的存储方式称为小数端小数端方式。方式。将最低字节最低字节存储在最大地址位置最大地址位置的存储方式称为大数端大数端方式。方式。许多新型

    24、计算机系统结构都同时支持大数端和小数端数据存储方式。例:十进制数例:十进制数1000000,用十六进制数据表示为:,用十六进制数据表示为:F4240H,在在32位数据类型中存储为位数据类型中存储为000F4240H。(1)小数端存放40420F000123存储器地址编号(2)大数端存放000F42400123 目前计算机所用数据字长一般为目前计算机所用数据字长一般为32位。存储器的位。存储器的地址,一般按字节表示。计算机的指令系统可支持地址,一般按字节表示。计算机的指令系统可支持对字节、半字、字、双字的运算,有些计算机有位对字节、半字、字、双字的运算,有些计算机有位处理指令。处理指令。 为便于

    25、硬件实现,一般要求多字节数据对准边界,为便于硬件实现,一般要求多字节数据对准边界,如如P132图图52(a)所示。所示。当所存数据不能满足此要求当所存数据不能满足此要求时,则填充一个至多个空白字节。时,则填充一个至多个空白字节。 也有的计算机不要求对准边界,也有的计算机不要求对准边界,但可能增加访问但可能增加访问存储器次数,而且还有可能要对高低字节的位置进存储器次数,而且还有可能要对高低字节的位置进行调整。行调整。3.数据对齐方式在数据对齐存储方式下,要求一个数据字占据完整的一个字的存储位置。而不能分成两部分。例:一个32位的字在按字对齐方式下,它的地址应当是4的倍数,即其地址的二进制码的最低

    26、两位为00,这样它占据的存储器位置是地址为:4n、4n+1、4n+2、4n+3(n为自然数)。在32位宽的存储中,这个字可以一次读取或写入。在不按字对齐方式下,它的地址就如出现:4n-1、4n、4n+1、4n+2的情况。这样的数据在32位宽的存储中,需要分两次读取或写入。例:0481216字节地址3210数据字的存储地址为80481216字节地址3210数据字的存储地址为9分两次读/写5.4 寻址方式(寻址方式(P133) 存放操作数的部件存放操作数的部件:ALU的某个寄存器、存储器、指令的某个寄存器、存储器、指令 程序的指令代码程序的指令代码:一般在存储器中一般在存储器中 寻址方式:寻址方式

    27、:根据指令中给出的地址码字段寻找真根据指令中给出的地址码字段寻找真实的操作数以及下一条要执行的指令地址的方式。实的操作数以及下一条要执行的指令地址的方式。1直接寻址直接寻址操作数的地址直接在指令中给出,操作数在存储器中操作数的地址直接在指令中给出,操作数在存储器中例:例:MOV AX,2000寻址方式字段A有效地址2寄存器寻址寄存器寻址操作数在寄存器中,寄存器号在指令中给出。操作数在寄存器中,寄存器号在指令中给出。例:例:MOV AX,BX优点优点:地址码短,从寄存器中存取数据比从存储器中存取快地址码短,从寄存器中存取数据比从存储器中存取快得多得多.寄存器寻址方式可以缩短指令长度、节省存储空间

    28、,提高寄存器寻址方式可以缩短指令长度、节省存储空间,提高指令的执行速度,在计算机中得到广泛应用。指令的执行速度,在计算机中得到广泛应用。OPR指令操作数寄存器R3基址寻址 在计算机中设置一个专用的基址寄存器,或由指令指定一个通用寄存器为基址寄存器,操作数的地址操作数的地址由基址寄存器的内容和指令的地址码由基址寄存器的内容和指令的地址码A相加相加得到,地址码A通常被称为位移量(disp),也可用其他方法获得位移量。例:MOV AX,50BX在MASM中这叫寄存器相对寻址注1:基址寻址主要用以解决程序在存储器中的定位(逻辑地址 物理地址)和扩大寻址空间(基址位移量)等问题。注2:通常基址寄存器中的

    29、值只能由系统程序设定,由特权指令执行,而不能被一般用户指令所修改,因此确保了系统的安全性。4变址寻址变址寻址 指令地址码部分给出的地址指令地址码部分给出的地址A和指定的变址寄存器和指定的变址寄存器X的内容通过加法器的内容通过加法器相加,所得的相加,所得的和作为地址和作为地址从存储器从存储器中读出所需的操作数。这是几乎所有计算机都采用的中读出所需的操作数。这是几乎所有计算机都采用的一种寻址方式,当计算机中还有基址寄存器时,那么一种寻址方式,当计算机中还有基址寄存器时,那么在计算有效地址时还要加上基址寄存器的内容。在计算有效地址时还要加上基址寄存器的内容。 例:例:MOV AX,tableSI变址

    30、寄存器的值为:1m该图表示变址操作对处理一维数组的支持。利用变址操作与循环执行程序的方法对整个数组进行运算,在整个执行过程中,不改变原程序,因此对实现程序的重入性时有好处的。二维数组也可用变址操作实现,需要两个变址寄存器。有些计算机的指令系统的变址寄存器由自动增量或自动减量功能。5间接寻址间接寻址 根据指令的地址码所取出的内容是操作数的地址或指令的地址,这种方式称为间接寻址或间址。 根据地址码取出的是寄存器地址还是存储器地址,间接寻址又可分为寄存器间接寻址和存储器间接寻址两种方式。例:MOV AX,BX 间接寻址有一次间址和多次间址两种情况。 对于存储器一次间址情况,需访问两次存储器才能取得数

    31、据,第一次从存储器读出操作数地址,第二次读出操作数。例:例:MOV AX,BX int *p;(一级间址一级间址) int *p;(二级间址)(二级间址)例:例: 直接寻址:直接寻址:JMP near ptr A1 间接寻址:间接寻址:JMP dword ptr 20006相对寻址相对寻址 把程序计数器把程序计数器PC的内容的内容(即当前执行指令的地址即当前执行指令的地址)与指令的地与指令的地址码部分给出的位移量址码部分给出的位移量(disp)之和作为操作数的地址或转移地址,之和作为操作数的地址或转移地址,称为相对寻址。称为相对寻址。 主要用于转移指令,执行本条指令后,将转移到(PC)+dis

    32、p,(PC)为程序计数器的内容。例: JMP SHORT PTR L1 相对寻址有两个特点: (1)转移地址不是固定的,它随着转移地址不是固定的,它随着PC值的变化而变化,并且总值的变化而变化,并且总是与是与PC相差一个固定相差一个固定值值disp,因此无论程序装入存储器的任何,因此无论程序装入存储器的任何地方地方, 均能正确运行,对浮动程序很适用。均能正确运行,对浮动程序很适用。(2)位移量可正、可负,通常用补码表示。如果位移量为位移量可正、可负,通常用补码表示。如果位移量为n位,位,则这种方式的寻址范围在则这种方式的寻址范围在(PC)-2(n-1)到到(PC)+2(n-1) -1之间。之间

    33、。 计算机的程序和数据一般是分开存放的,程序区在程序执行过程中不允许修改。在程序与数据分区存放的情况下,不用相对在程序与数据分区存放的情况下,不用相对寻址方式来确定操作数地址寻址方式来确定操作数地址。 PC的内容为的内容为1000,指令的位移量(相对距离)为,指令的位移量(相对距离)为35。故其。故其相对地址为相对地址为1035。这个地址是不固定的,随。这个地址是不固定的,随PC的值变化而变的值变化而变化,并且相对地差一个固定值。因此,无论程序装入存储器化,并且相对地差一个固定值。因此,无论程序装入存储器的任何区域,只要这个差值不变,程序均能正确运行。由于的任何区域,只要这个差值不变,程序均能

    34、正确运行。由于程序在内存空间里是浮动的,又称程序在内存空间里是浮动的,又称浮动寻址浮动寻址。例如:例如:OPX735操作码 寻址特征 位移量DP C:相对距离相对距离 =35内存内存OP X7353000103510007立即立即数数 所需的操作数由指令的地址码部分直接给出,就称为立即数(或直接数)寻址方式。 例: 其汇编符号记为:其汇编符号记为:MOV Ri,#1536 这种方式的特点是取指时,操作码和一个操作数同时被取出,不必再次访问存储器,提高了指令的执行速度,但不能修改,通常用于寄存器或存储单元赋初值或提供一个常数等。 操作码操作码 寄存器号寄存器号 立即数立即数 Ri MOV Ri

    35、1536 1536 8.堆栈寻址:堆栈寻址: 堆栈操作使用一种特殊的数据传送指令,即压入指令堆栈操作使用一种特殊的数据传送指令,即压入指令(PUSH)和弹出指令()和弹出指令(POP)。)。 若采用若采用“向上生成向上生成”的堆栈,其操作过程如下:的堆栈,其操作过程如下: 压入指令压入指令:PUSH OPR,是把,是把OPR(设长度为一(设长度为一个字节)个字节) 压入堆栈。其操作是:压入堆栈。其操作是: (SP)1 SP ; OPR (SP) 。 弹出指令弹出指令:POP OPR,是从堆栈弹出一个数据,是从堆栈弹出一个数据(长度为一个字节)送(长度为一个字节)送OPR,操作是:,操作是: (

    36、SP)OPR ;(SP)+1 SP 。 以上这些寻址方式,在计算机中可以组合使用。以上这些寻址方式,在计算机中可以组合使用。例如在一条指令中可以同时实现基址寻址与变址寻址,例如在一条指令中可以同时实现基址寻址与变址寻址,其有效地址为:其有效地址为: 基址寄存器内容基址寄存器内容+变址寄存器内容变址寄存器内容+指令地址码指令地址码A 假如用户用高级语言编程,根本不用考虑寻址假如用户用高级语言编程,根本不用考虑寻址方式,因为这是编译程序的事。方式,因为这是编译程序的事。但若用汇编语言编程,则应对它有确切的了解,但若用汇编语言编程,则应对它有确切的了解,才能编出正确而又高效的程序。才能编出正确而又高

    37、效的程序。此时应认真阅读指此时应认真阅读指令系统的说明书,因为不同计算机采用的寻址方式令系统的说明书,因为不同计算机采用的寻址方式是不同的,即使是同一种寻址方式,在不同的计算是不同的,即使是同一种寻址方式,在不同的计算机中也有不同的表达方式或含义。机中也有不同的表达方式或含义。5.5 指令类型指令类型(P137)指令系统决定了计算机的基本功能,因此指令系指令系统决定了计算机的基本功能,因此指令系统的设计是计算机系统设计中的一个核心问题。统的设计是计算机系统设计中的一个核心问题。5.5.1 指令的分类及功能指令的分类及功能 一台计算机的指令系统通常有几十条至几百条指令,一台计算机的指令系统通常有

    38、几十条至几百条指令,按其所完成的功能可分为:按其所完成的功能可分为:算术逻辑运算指令、算术逻辑运算指令、 移位操作指令、浮点运算指令、十进制运算指令、移位操作指令、浮点运算指令、十进制运算指令、 字符串处理指令、向量运算指令、数据传送指令、字符串处理指令、向量运算指令、数据传送指令、 转移指令、堆栈操作指令、输入输出指令、特权转移指令、堆栈操作指令、输入输出指令、特权指令等。指令等。 下面分别说明各类指令的功能。下面分别说明各类指令的功能。1算术逻辑运算指令算术逻辑运算指令 (1)算术算术(定点数运算即相当于高级语言中对整数(定点数运算即相当于高级语言中对整数(integer)的处理的处理,根

    39、据算术运算的结果置状态位,一般有根据算术运算的结果置状态位,一般有Z(结果为结果为0)、N(结果为负结果为负)、V(结果溢出结果溢出)、C(产生进位或借位产生进位或借位)四四个状态位。个状态位。 ):):+、-、*、/ADD、ADC、SUB、SBB、MUL、IMUL、DIV、IDIV 例例:ADD AX,BX (2)逻辑逻辑:与、或、非与、或、非(求反求反)、异或、异或(按位加按位加)等有些计算机等有些计算机还设置有还设置有位操作位操作指令,如位测试指令,如位测试(测试指定位的值测试指定位的值)、位、位清除清除(把指定位清零把指定位清零)、位求反、位求反(取某位的反值取某位的反值)指令等。指令

    40、等。AND、OR、NOT、XOR、BIT、CLI等等例如:例如: AND AX,BX 2移位操作指令移位操作指令 移位操作指令分为算术移位、逻辑移位和循环移位三种。例:SHL AL,13浮点运算指令浮点运算指令 高级语言中的实数高级语言中的实数(real)经常是先转换成浮经常是先转换成浮点数的形式而后再进行处理。某些机器没有设点数的形式而后再进行处理。某些机器没有设置浮点运算指令而用子程序实现,其速度较低。置浮点运算指令而用子程序实现,其速度较低。因此主要用于科学计算的计算机应该设置浮点因此主要用于科学计算的计算机应该设置浮点运算指令,一般能对单精度运算指令,一般能对单精度(32位位)、双精度

    41、、双精度(64位位)数据进行处理。数据进行处理。4十进制运算指令十进制运算指令 例:AAA 在人机交互作用时,输入输出的数据都是以十在人机交互作用时,输入输出的数据都是以十进制形式表示的。在某些数据处理系统中输入进制形式表示的。在某些数据处理系统中输入输出的数据很多,但对数据本身的处理却很简输出的数据很多,但对数据本身的处理却很简单。在不具有十进制运算指令的计算机中,首单。在不具有十进制运算指令的计算机中,首先将十进制数据转换成二进制数,再在机器内先将十进制数据转换成二进制数,再在机器内运算;尔后又转换成十进制数据输出。因此,运算;尔后又转换成十进制数据输出。因此,在输入输出数据频繁的计算机系

    42、统中设置十进在输入输出数据频繁的计算机系统中设置十进制运算指令能提高数据处理的速度制运算指令能提高数据处理的速度。5字符串处理指令字符串处理指令 例例:MOVS 早期的计算机主要用于科学计算和工业控制,指令系统的设置侧重于数值运算,只有少数大型机才有非数值处理指令。而随着计算机的不断发展,应用领域不断扩大,计算机更多地应用于信息管理、数据处理、办公室自动化等领域,这就需要有很强的非数值处理能力。因此,越来越重视非数值指令的设置,甚至像Intel8086微处理器都配置了这种指令,使它能够直接用硬件支持非数值处理。一般包括字符串传送、字符串比较、字符串查询、字符串转换等指令。6数据传送指令数据传送

    43、指令 这类指令用以实现寄存器与寄存器,寄存器与存储器单元,存储器单元与存储器单元之间的数据传送。 对于存储器来讲,数据传送包括了对数据的读(相当于取数指令)或写(相当于存数指令)操作。数据传送时,数据从源地址传送到目的地址,而源地址中的数据保持不变,因此实际上是数据复制。 数据传送指令一次可以传送一个数据或一批数据,如Intel8086的MOVS指令,一次传送一个字或字节,而当加上重复执行前缀(REP)后,一次可以把多达64KB的数据块从存储器的一个区域传送到另一个区域。 有些机器设置了数据交换指令,完成源操作数与目的操作数互换,实现双向数据传送。7转移类指令转移类指令 这类指令用以控制程序流

    44、的转移。在大多数这类指令用以控制程序流的转移。在大多数情况下,计算机是按顺序方式执行程序的,但情况下,计算机是按顺序方式执行程序的,但是也经常会遇到离开原来的顺序转移到另一段是也经常会遇到离开原来的顺序转移到另一段程序或循环执行某段程序的情况。程序或循环执行某段程序的情况。 按转移的性质,转移指令分为按转移的性质,转移指令分为无条件转移、无条件转移、条件转移、过程调用与返回、陷阱条件转移、过程调用与返回、陷阱(trap)等几种。等几种。8堆栈及堆栈操作指令堆栈及堆栈操作指令 例:PUSH AX 堆栈堆栈(stack)是由若干个连续存储单元组成的先是由若干个连续存储单元组成的先进后出进后出(fi

    45、rst in last out,简称,简称FILO)存储区存储区,第一第一个送入堆栈个送入堆栈中的数据存放在栈底栈底,最近送入堆栈最近送入堆栈中的数据存放在栈顶栈顶。栈底栈底是固定固定不变的,而栈顶却是随着数据的入栈和出栈在不断变化。为了表示栈顶的位置,有一个寄存器或存储器单元用于指出栈顶的地址,这个寄存器或存储器单元就称为堆栈指针(stack pointer,简称SP)。任何堆栈操作只能在栈顶进行。而在一般计算机中,堆栈主要用来暂存中断和子程序调用时现场数据及返回地址,用于访问堆栈的指令只有压入压入(即进栈即进栈)和弹出弹出(即退栈即退栈)两种,它们实际上是一种特殊的数据传送指令。压入指令:

    46、PUSH把指定的操作数送入栈顶弹出指令:POP把栈顶的数据取出在一般的计算机中,堆栈从高地址向低地址扩展,即栈底的地址总是大于或等于栈顶的地址(也有少数计算机刚好相反)。堆栈图例(进栈)堆栈图例(进栈)PUSH AXPUSH AX sp push axSpALAH高地址低地址进栈方向 (sp) (SP)-2 (sp)+1,(sp) (AX)9输入输出输入输出(IO)指令指令 例:例:IN 、OUT 计算机所处理的一切原始数据和所执行的程序计算机所处理的一切原始数据和所执行的程序(除了固除了固化在化在ROM中的以外中的以外)均来自外部设备的输入,处理结均来自外部设备的输入,处理结果需通过外部设备

    47、输出。果需通过外部设备输出。输入输出指令的一般格式如下输入输出指令的一般格式如下:OPREGA操作码寄存器名外部设备中的寄存器地外部设备中的寄存器地址或设备码,其长度一般为址或设备码,其长度一般为816位,位,可以表示可以表示25664K个设备寄存器个设备寄存器输入指令输入指令完成从A地址所指定的外部设备寄存器中读入一个数据到REG寄存器中;输出指令输出指令刚好相反,是把REG寄存器中的数据送到A地址所指定的外部设备寄存器中。此外,IO指令还可用来发送和接收控制命令和回答信号,用以控制外部设备的工作。 有些计算机采用外部设备与存储器统一编址外部设备与存储器统一编址的方法把外部设备寄存器看成是存

    48、储器的某些单元,任何访问存储器的指令均可访问外部设备,因此不再专设IO指令。10特权指令特权指令 某些指令使用不当会破坏系统或其他用户信息,因此为了安全起见,这类指令只能用于操作系统或其他系统软件,只能用于操作系统或其他系统软件,而不提供给用户使用,称为特权指令。而不提供给用户使用,称为特权指令。 一般来说,在单用户、单任务的计算机中不一定需要特权指令,而在多用户、多任务的计算机系统中,特权指令却是必不可少的。它主要用于系统资源的分配和管理,包主要用于系统资源的分配和管理,包括改变系统的工作方式、检测用户的访问权限、修改虚拟括改变系统的工作方式、检测用户的访问权限、修改虚拟存储器管理的段表、页

    49、表和完成任务的创建和切换等。存储器管理的段表、页表和完成任务的创建和切换等。 在某些多用户的计算机系统中,为了统一管理所有的外部设备,输入输出指令也作为特权指令,不允许用户直接使用。需输入输出时,可通过系统调用,由操作系统来完成。 11其他指令其他指令 (1)向量指令向量指令(2)多处理机指令多处理机指令(3)控制指令控制指令 包括等待指令、停机指令、空操作指令、开中断、关中断、置条件码指令等。 5.5.2 双字长运算双字长运算(子程序举例子程序举例) 有时候,需对双字长操作数进行运算,而机器本身并没有双字长指令,这样就需要通过子程序予以实现。1双字长加法运算双字长加法运算假设在寄存器R1,R

    50、2和R3,R4分别存放两个双字长操作数,其中R1,R3为高位。加法运算可分为两种情况讨论:(1)假设机器设置有ADD(加法指令)和ADC(加进位的加法指令),则执行下列两条指令后在R3、R4中得到运算结果。 指指 令令 操操 作作 说说 明明 K:ADD R2,R4 ;低位相加,R4(R3)+(R4),并根据运算结果置进位位C K+1:ADC R1,R3 ;高位相加,并加进位位C, R3(R1)+(R3)+C(2)假设机器仅设置ADD指令,而没有ADC指令,则应执行下列程序: 指指 令令 操操 作作 说说 明明 K:ADD R2,R4;低位相加,R4(R2)+(R4),并根据运算结果置进位位C

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:指令系统课件.ppt(71页)
    链接地址:https://www.163wenku.com/p-2239515.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库