版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章 指令系统,基本概念 程序:由一系列有序的指令构成; 指令:执行某种基本操作的命令,它是由一组二进制代码表示,指示计算机硬件完成指定的基本操作; 指令系统:一台计算机的所有指令的集合; 指令系统是软件和硬件的主要界面 程序员所能看到的机器的主要属性; 表明计算机具有哪些最基本的硬件功能;,5.1 指令,指令的基本格式: 操作码字段 操作数地址字段 操作码OP用于说明该指令操作的性质及功能。 地址码Addr用来描述该指令的操作对象,由它给出操作数地址或给出操作数,及操作结果存放地址。,5.1 指令,指令格式设计的准则: 在满足操作种类、寻址范围和寻址方式的前提下,指令尽可能短。这是指令功能
2、完备性与有效性的统一。 指令长度应为字节的整数倍。这样可以充分利用存储空间,并增加访问内存的有效性,这是指令格式设计中规整性的体现。 指令系统的兼容。兼容性的概念就是指老型号机器上所有可以运行的软件都可以不加任何修改的在新机器上运行。,5.1 指令,指令长度操作码的长度操作数地址的长度 操作码长度n位与操作种类N种之间的关系 N2n 操作码长度越长,操作种类就越多,指令的条数也越多 地址码长度越长,寻址空间越大,操作数寻址方式越多 显然在固定指令长度的计算机里,这两者是一个矛盾。,5.1.1 指令中的地址码格式,地址码字段的内容 操作数的地址,用以指明操作数的存放处; 操作结果的地址,用以运算
3、结果的存放。 后继指令的地址,从完备性的角度来考虑,指令中应当有一个地址字段指出下一条指令地址,以便程序能够连续运行。由于程序大多是顺序执行的 ,因此我们可以硬件上设定一个程序计数器PC(Program Counter)专门存放当前要执行的指令地址,每取出一条指令后,PC自增以指明后继指令地址。当需要改变程序执行顺序时,可由转移类指令实现。,5.1.1 指令中的地址码格式,指令格式按地址码个数分类 三地址指令格式 OP表示操作码,A1、A2、A3分别表示操作数1的地址和操作数2的地址以及结果存放地址,A1、A2和A3可以是主存单元地址或者寄存器地址。 指令意义:(A1)OP(A2)(A3) 其
4、中(Ai)是表示AI中的内容,符号“”表示“做为”。 即该指令的意义是讲以A1、A2为地址的两个操作数(A1)和(A2)进行由OP所指定的操作,并将操作的结果做为A3的内容(或存入地址A3中)。,5.1.1 指令中的地址码格式,二地址指令格式 指令意义:(A1)OP(A2)(A1) 即该指令的意义是讲以A1、A2为地址的两个操作数(A1)和(A2)进行由OP所指定的操作,并将操作的结果做为A1的内容(或存入地址A1中)。因此,常称A1为目的操作数地址Ad,称A2为源操作数地址As。,5.1.1 指令中的地址码格式,一地址指令格式 指令中只给出一个操作数地址A,对于需要有两个操作数的指令,另一个
5、操作数采用“隐含”方式。也就是说指令中看不出,实际操作时确实存在,其目的是减少指令的长度。这个隐含的操作单元每次操作都是必然的操作对象,同时也是存放运算结果的必然场所,称为累加器AC(Acumulator)。 指令意义:(AC)OP(A)(AC) 也有可能只有一个操作数,比如求补,求反等操作。 指令意义:OP(A)(A),5.1.1 指令中的地址码格式,零地址指令 指令中只有操作码,不含操作数。对于需要有操作对象的指令所需要操作数采用隐含指定。例如堆栈指令PUSH,POP,OP,5.1.2 指令中的操作码格式,操作码是用来指示机器执行什么样的操作。 操作码的编码方式: 定长操作码,变长指令码
6、操作码的长度固定,且集中放在指令字的第一个字段中,指令的其余部分全部用于地址码。由于操作码不同所涉及的操作数的个数是不同的,使得指令的长度随操作码而变化。 特点:这种方式的操作码字段规整,有利于简化操作码译码器的设计,广泛用于指令字长较长的计算机中。,5.1.2 指令中的操作码格式,变长操作码,定长指令码 这是操作码长度不固定,但指令码长度固定的一种设计。由于不同指令需要的操作数个数不同,为了有效地利用每一个二进制位,采用扩展操作码的方式,即操作码和地址码位数不固定,操作码位数随地址码数的减少而增加,对地址数少的指令允许操作码长些,对地址数多的指令则操作码就短些。 使用操作码扩展技术的另一种考
7、虑是霍夫曼原理,即根据使用频度(指在程序中出现的概率)分配操作码。使用频度高的指令应分配短的操作码;使用频度低的指令较长的操作码,以求减少操作码在程序中的总位数。,5.1.3 寻址方式,基本概念 形式地址:地址字段中的地址 ; 有效地址:存放操作数的内存实际地址; 寻址方式:由指令中提供的形式地址演变为有效地址的方法 。换句话说,是规定如何对地址字段作出解释以找到所需的操作数的方式,或者程序转移时找到转移地址的方式。 区分多种寻址方式的两种方法 一种是操作码决定其寻址方式,称为“隐式” 另一种是在指令中设置寻址方式字段,由寻址方式字段不同的编码来指定操作数的寻址方式,称为“显式”。,5.1.3
8、 寻址方式,立即寻址 图中OP为操作码字段指明操作种类,M为寻址方式字段用于指明所用的寻址方式。 在指令中直接给出操作数,即让操作数占据一个地址码部分,在取出指令的同时也取出了操作数,立即有操作数可用,所以称为立即寻址。这个操作数也称为立即数。 特点:不需要根据地址寻找操作数,所以,执行速度快,同时由于操作数是指令的一部分,不能修改,所以只适合常数设定初始值。,5.1.3 寻址方式,寄存器寻址 Rx为寄存器号 如果指令中地址码部分给出的是某一通用寄存器的地址(即寄存器号),而指定的寄存器中存放着操作数,这种方式就称寄存器直接寻址。,5.1.3 寻址方式,引入寄存器的意义 优点 与立即数相比,寄
9、存器寻址的操作数可变; 与直接寻址相比寄存器存取数据的速度比主存快得多,从而加快了指令运行时间; 由于寄存器的数量较少,其地址码也比主存单元短得多。 因此这种方式可以有效缩短指令长度,减少了取指令的时间; 用寄存器存放基址值,变址值可派生出其他寻址方式,使编程更具有灵活性。 缺点 开始需要对寄存器进行初始化操作,结束需要做清空操作; 指令中需要设置专门的标志位识别空间地址。,5.1.3 寻址方式,直接寻址 指令中的地址码给出的就是操作数所在主存单元的实际地址,即有效地址EA。按有效地址访问一次主存便获得操作数,由于是直接根据地址获得操作数,故称为直接寻址。 特点:寻址方式简单,不需作任何寻址计
10、算。由于有效地址是指令的一部分,不能修改,因此只能用于访问固定内存单元,或者外部设备接口中的寄存器。 缺点是直接地址需要的二进制位多,造成指令字段长。,5.1.3 寻址方式,页面寻址 图4.4 页面寻址是将整个主存空间划分为若干相等的区,每个区为一页,由页面号寄存器存放页面地址(内存高地址),指令中的形式地址给出操作数存放单元在页内的地址,相当于页内位移量。将页面号寄存器内容与指令给出的形式地址相拼接形成EA,称为页面寻址。 特点:不需计算,适于组织程序模块,易于实现页面保护。,5.1.3 寻址方式,寄存器间接寻址 图4.5 寄存器间接寻址是指指令中给出寄存器号,寄存器中存放操作数的有效地址。
11、由于寄存器的个数有限,而寄存器的位数又足以访问这个内存空间,既有效地缩短了指令长度,又解决了寻址空间太小的问题。这时有效地址为寄存器的内容,表示为EA(Ri)。 特点:只要访问一次主存,修改寄存器内容可以改变访问单元,灵活方便。,5.1.3 寻址方式,间接寻址 图4.6 指令地址码部分给出的是存放操作数地址的主存单元地址(简称操作数地址的地址),称为间接寻址。 指令中的A字段存放着有效地址EA在内存存放单元的地址。EA(A)。主存单元A通常称为间址单元或间址指示器。,5.1.3 寻址方式,特点: 采用间址方式可将主存单元A作为数据地址的指针,用以指示操作数的存放位置,只要修改指针内容就修改了操
12、作数的地址,而不需修改指令。 其次,间接寻址也可以做到用较短的地址码访问到较大的存储空间。 间接寻址至少需要访问两次主存才能取出操作数,因此速度慢。,5.1.3 寻址方式,变址寻址 在指令中指定一个寄存器Ri作为变址寄存器,并在指令地址码部分给出一个形式地址D,变址寄存器Ri的内容(简称变址值)与形式地址D相加为操作数的有效地址。 EA(Ri)D。,5.1.3 寻址方式,变址寻址通常用于字符串处理,数组运算等成批数据处理中。其典型用法是将指令中的形式地址作为基准地址,而变址寄存器的内容作为修改量。 变址寻址可以扩展出自动增量和减量的功能,用于操作数连续存放的场合,可以进一步简化程序。 变址还可
13、以与间址结合起来使用,形成先变址后间址或先间址后变址等寻址方式。,基址寻址 图4.8 基址寻址是用来将用户的逻辑地址(用户编程时所使用的地址)转换成主存的物理地址(程序在主存中的实际地址)。 程序的重定位:当用户程序装入主存时,就需进行逻辑地址到物理地址的变换,即程序重定位。,5.1.3 寻址方式,5.1.3 寻址方式,由于多数程序在一段时间内往往只访问有限的一个存储区,这就是“程序执行的局部性”。可利用这个特点缩短指令中地址字段的长度。设置一个基址寄存器存放这一区域的首址,而在指令中给出以首址为基准的位移量,二者之和为操作数的有效地址。既能缩短指令的地址字段长度,又可以扩大寻址空间。 有效地
14、址等于指令中形式地址D与基址寄存器Rb内容之和, EA(Rb)D。,5.1.3 寻址方式,与变址寻址的区别 变址寻址和基址寻址在形式上和操作数地址的形式上都十分相似。但在编程习惯上,使用变址寻址时,由变址寄存器提供修改量,指令中形式地址作为基准地址,而基址寻址时,由基址寄存器提供基准地址,指令中形式地址作为位移量。在应用场合上,基址寻址面向系统,可用来解决程序在主存中的重定位和扩大寻址空间等问题。而变址寻址却面向用户,用于访问字符串、向量和数组等成批数据。,5.1.3 寻址方式,相对寻址 图4.9 可以看作是基址寻址的特例。若由程序计数器PC提供基准地址,指令中给出的形式地址D作为位移量,二者
15、相加后为操作数的有效地址。EA(PC)D。,5.1.3 寻址方式,特点: PC指示的是当前指令地址,而指令中的位移量D指出的是数据存放单元或转向地址与当前指令之间的相对距离。 与地址无关的程序设计:当指令地址由于程序安装于主存的不同位置而发生变化时,程序转向地址或数据存放地址随之变化,由于两者位移量不变,使用相对寻址仍能保证程序的正确转向和操作数的正确获取。这样,整个程序模块就可以安排在主存重的任意区间执行。 由于转向地址可以是在该转移指令之前或之后,因此,位移量也可正,可负,常用补码表示。 如果位移量为n位,则寻址范围为:(PC)2n1(PC)2n11,5.1.3 寻址方式,注意 相对寻址是
16、以当前指令地址为基准,还是以下指令地址为基准,这是一个细节问题。一般采用后者,汇编程序的位移量由转向地址与下条指令地址求出,即: 位移量Disp转向地址(PC)。 其他寻址方式 位寻址:寻址到位; 块寻址:对连续的数据块进行寻址; 堆栈寻址:使用堆栈指令进行操作时,堆栈指令中的一个操作数地址是由堆栈指针SP隐含指定。,5.1.4 指令类型,按指令功能分类: 传送类指令 完成数据从一个地方传送到另一个地方,一般按字节、字、数据块,或者是位为单位。 比如传送指令、数据交换指令、入(出)栈指令。 输入/输出类指令 完成主机与外围设备之间的信息传送,包括输入/输出数据,主机向外设发控制命令,或了解外设的工作状态等。 三种设置方式: 1.设置专门的I/O指令 2.用传送类指令实现I/O操作 3.通过IOP执行I/O操作,5.1.4 指令类型,算术运算类指令 定点运算和浮点运算类指
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 儿科危急值PDCA案例分析
- 电子病历应用水平评级方案
- 行政办公系统账号管理细则
- 高处作业工程动火临近区域控制方案
- 包装机异常停机恢复流程制度
- 扬尘治理分项达标施工管理方案
- 特殊过程质量控制方案
- 涂装线瓶颈排程优化方案编制
- 地下连续墙基坑开挖施工组织设计
- 施工现场临时设施材料进退场管理细则
- DB23∕T 3082-2022 黑龙江省城镇道路设计规程
- 甘肃省定西市市级名校2026届中考冲刺卷物理试题含解析
- 大学试用期考核管理办法
- 江苏棋牌室管理暂行办法
- 小学教育专业专升本试题带答案
- 2024年中国烟草总公司江西省公司考试真题试卷及答案
- 2025年苏州市中考历史试卷真题(含标准答案)
- 心血管疾病的三级预防
- 爱永在 二部合唱简谱
- 上海市浦东新区2024-2025学年高一下学期期中考试英语试卷(含答案)
- 承插型盘扣式钢管脚手架安全技术标准JGJT231-2021规范解读
评论
0/150
提交评论