指令和数据的寻址方式.ppt_第1页
指令和数据的寻址方式.ppt_第2页
指令和数据的寻址方式.ppt_第3页
指令和数据的寻址方式.ppt_第4页
指令和数据的寻址方式.ppt_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

43 指令和数据的寻址方式,操作数或指令在存储器中的地址:某个操作数或某条指令存放在某个存储单元时其存储单元的编号。 在存储器中,操作数或指令写入或读出的方式,有三种:地址指定方式、相联存储方式和 堆栈存储方式。 当采用地址指定方式时,形成操作数或指令地址的方式,称为寻址方式。寻址方式分为两类,即指令寻址方式和数据寻址方式。 指令的寻址方式有两种,一种是顺序寻址方式,另一种是跳跃寻址方式。 4.3.1 指令的寻址方式 1. 顺序寻址方式 指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令的顺序执行。 为此,必须使用程序计数器(又称指令指针寄存器)PC来计数指令的顺序号,该顺序号就是指令在内存中的地址。 2. 跳跃寻址方式 当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。程序跳跃后,按新的指令地址开始顺序执行。,4.3.2 操作数寻址方式,所谓操作数的寻址方式,就是形成操作数的有效地址的方法。 例如,一种单地址指令的结构如下所示,其中用X,I,D各字段组成该指令的操作数地址。 操作码OP 变址X 间址I 形式地址D 指令中操作数字段的地址码是由形式地址和寻址方式特征位等组合形成,因此,一般来说,指令中所给出的地址码,并不是操作数的有效地址。 因此,寻址过程就是把操作数的形式地址,变换为操作数的有效地址的过程。 1. 隐含寻址 在指令中不明显的给出而是隐含着操作数的地址。例如,单地址的指令格式,没有在地址字段中指明第二操作数地址,而是规定累加寄存器AC作为第二操作数地址,AC对单地址指令格式来说是隐含地址。 2. 立即寻址 指令的地址字段指出的不是操作数的地址,而是操作数本身。这种方式的特点是指令执行时间很短,不需要访问内存取数。 例如:单地址的移位指令格式为 OP(移位) F D 这里D不是地址,而是一个操作数。F为标志位,当F1,操作数进行右移;当F0时,操作数进行左移。,432 操作数寻址方式,直接寻址:是一种基本的寻址方法,其特点是:在指令格式的地址字段中直接指出操作数在内存的地址D。 采用直接寻址方式时,指令字中的形式地址D就是操作数的有效地址E,既ED。因此通常把形式地址D又称为直接地址。此时,由寻址模式给予指示。 如果用S表示操作数,那么直接寻址的逻辑表达式为 S(E)(D) 间接寻址:是相对于直接寻址而言的,在间接寻址的情况下,指令地址字段中的形式地址D不是操作数的真正地址,而是操作数地址的指示器,或者说D单元的内容才是操作数的有效地址。 如果把直接寻址和间接寻址结合起来,指令有如下形式: 操作码 I D 寻址特征位I0,表示直接寻址,这时有效地址ED;I1,表示间接寻址,这时有效地址E(D)。 间接寻址方式是早期计算机中经常采用的方式,但由于两次访存,影响指令执行速度,现在已不大使用。,432 操作数寻址方式,寄存器寻址方式和寄存器间接寻址方式:当操作数不放在内存中,而是放在CPU的通用寄存器中时,可采用寄存器寻址方式。此时指令中给出的 操作数地址不是内存的地址单元号,而是通用寄存器的编号。 寄存器寻址方式和寄存器间接寻址方式的区别在于:指令中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中。 相对寻址:是把程序计数器PC的内容加上指令格式中的形式地址D而形成操作数的有效地址。 程序计数器的内容就是当前指令的地址。“相对”寻址,就是相对于当前的指令地址而言。 采用相对寻址方式的好处是程序员无须用指令的绝对地址编程,所编程序可以放在内存任何地方。 此时形式地址D通常称为偏移量,其值可正可负,相对于当前指令地址进行浮动。 基址寻址方式:将CPU中基址寄存器的内容加上指令格式中的形式地址而形成操作数的有效地址。 它的优点是可以扩大寻址能力。同形式地址相比,基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址。,432 操作数寻址方式,变址寻址方式:把CPU中某个变值寄存器的内容与偏移量D相加来形成操作数的有效地址。 使用变址寻址方式的目的不在于扩大寻址空间,而在于实现程序块的规律性变化。 块寻址方式:块寻址方式经常用在输入输出指令中,以实现外存储器或外围设备同内存之间的数据块传送。块寻址方式在内存中还可用于数据块搬家。 块寻址时,通常在指令中指出数据块的起始地址(首地址)和数据块的长度(字数或字节数)。 如果数据块是变长的,可用三种方法指出它的长度: (1)指令中划出字段指出长度; (2)指令格式中指出数据块的首地址与末地址; (3)由块结束字符指出数据块长度。 操作码 首地址 标志位 末地址 段寻址方式:微型机中采用了段寻址方式,例如它们可以给定一个20位的地址,从而有1M存储空间的直接寻址能力。为此将整个1M空间存储器以64K为单位划分成若干段。在寻址一个内存具体单元时,由一个基地址再加上某些寄存器提供的16位偏移量来形成实际的20位物理地址。这个基地址就是CPU中的段寄存器。,433 寻址方式举例,PDP/11系列机寻址方式 PDP/11系列机指令字长为16位,虽然指令系统中有单操作数指令和双操作数指令,但操作数字段即地址部分均由6位二进制构成。例如双操作数指令为: 15 12 11 9 8 7 6 5 4 3 2 1 0 操作码 寻址方式 寄存器号 寻址方式 寄存器号 | 参阅表4.4PDP/11系列机的寻址方式,其主要特征是采用寄存器寻址 Pentium的寻址方式。 Pentium的外部地址总线宽度是36位,但它也支持32位的物理地址空间。其有效地址的寻址方式共有九种,参见表4.5 Pentium的寻址方式,例3 一种二地址RS型指令的结构如下所示: 6位 4位 1位 2位 16位 OP -通用寄存器 I X 偏移量D 其中I为间接寻址标志位,X为寻址模式字段,D位偏移量字段。通过I,X,D的组合,可构成下表所示的寻址方式。 请写出六种寻址方式的名称。 寻址方式 I X 有效地址E算法 说明 (1) 0 00 E=D (2) 0 01 E=(PC)+D PC为程序计数器 (3) 0 10 E=(R2)+D R2为变址寄存器 (4) 1 11 E=(R3) (5) 1 00 E=(D) (6) 0 11 E=(R1)+D R1为基址寄存器 解: 直接寻址 相对寻址 变址寻址 寄存器间接寻址 间接寻址 基址寻址,例4 某16位机器所使用的指令格式和寻址方式如下所示,该机有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器,指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是MOV(OP)(A)H ,STA(OP)(1B)H ,LDA(OP)(3C)H。MOV是传送指令,STA为写数指令,LDA为读数指令。,要求: 分析三种指令的指令格式与寻址方式特点。 CPU完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗? 下列情况下每个十六进制指令字分别代表什么操作?其中如果有编码不正确,如何改正才能成为合法指令? (F0F1)H (3CD2)H (2856)H (6FD6)H (1C2)H 解:第一种指令是单字长二地址指令,RR型;第二种指令是双字长二地址指令,RS型,其中S采用基址寻址或变址寻址,R由源寄存器决定;第三种也是双字长二地址指令,RS型,其中R由目标寄存器决定,S由20位地址(直接寻址)决定。 处理机完成第一种指令所花时间最短,因为是RR型指令,不需要访问存储器。第二种指令所花时间最长,因为是RS型指令,需要访问存储器,同时要进行寻址方式的变换运算(基址或变址),,这也需要时间。第二种指令的执行时间不会等于第三种指令,因为第三种指令虽然也访问存储器,但节省了求有效地址运算的时间开销。 根据已知条件:MOV(OP)001010,STA(OP)011011,LDA(OP)111100,将指令的十六进制格式转换成二进制代码且比较后可知:(F0F1)H (3CD2)H 指令代表LDA指令,编码正确,其含义是把主存(13CD2)H 地址单元的内容取至15号寄存器。 (2856)H 指令代表MOV指令,编码正确,含义是把6号源寄存器的内容传送至5号目标寄存器。 (6FD6)H 是单字长指令,一定是MOV指令,但编码错误,可改正为(28D6)H (1C2)H 是单字长指令,代表MOV指令,但编码错误,可改正为(28C2)H 。,44 堆栈寻址方式,堆栈是一组能存储和取出数据的暂时存储单元。 堆栈和其他形式的存储器之间的差别就在于,它们对数据的存取方法或寻址方法有所不同。 441 串联堆栈 串行堆栈是由CPU当中的一组专门的寄存器构成。串行堆栈的最大优点是速度快。 442 存储器堆栈 串行堆栈存的容量有限,为了突破这种限制,使用了存储器堆栈,其优点在于: l 堆栈能够具有程序员要求的任意长度; l 只要程序员喜欢,愿意建立多少堆栈,就能建立多少堆栈; l 可以用对存储器寻址的任何一条指令来对堆栈中的数据进行寻址。 存储器堆栈使用CPU中的一个特殊寄存器作为堆栈指示器。 串联堆栈和存储器堆栈的操作方式不同,在串联堆栈中,移动的是数据,而在存储器堆栈中,移动的是栈顶。这主要和两种堆栈的速度有关。 堆栈两种操作:进栈 、出栈,45 典型指令,451 指令的分类 一个较完善的指令系统应当包括数据传送类

温馨提示

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

评论

0/150

提交评论