计算机组成及系统结构_第1页
计算机组成及系统结构_第2页
计算机组成及系统结构_第3页
计算机组成及系统结构_第4页
计算机组成及系统结构_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式计算机组成与系统结构 陈泽宇 副教授单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式第1章 计算机系统概论第2章 运算方法和运算器第3章 存储系统第4章 指令系统第5章 中央处理器(CPU)第6章 总线系统第7章 输入输出(I/O)系统第8章 并行计算机系统单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式4.4 寻址方式 存储器既可用来存放指令,又可用来存放数据 在程序运行过程中,形成指令或操作数地址的方

2、式,称为寻址方式单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式4.4.1 指令寻址方式1顺序寻址方式2跳跃寻址方式单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式1顺序寻址方式 由于指令地址在主存中顺序排列,当执行一段程序时,通常是一条指令接着一条指令地顺序执行 从存储器取出第一条指令,然后执行这条指令 接着从存储器取出第二条指令,再执行第二条指令 单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式 这种程序顺序执行的过程称为指令的顺序寻址方式 FLA

3、SH演示 必须使用程序计数器PC来计数指令的顺序号 该顺序号就是指令在主存中的地址 指令逐条顺序执行,由PC+1PC控制单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式2跳跃寻址方式 指令的跳跃寻址,是指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出 FLASH演示 程序跳跃后,按新的指令地址开始顺序执行 指令计数器的内容也必须相应改变,以便及时跟踪新的指令地址指令地址指令内容存储器PC101JMP 42345单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式 采用指令跳跃寻址方式,可

4、以实现程序转移或构成循环程序,从而缩短程序长度,或将某些程序作为公共程序调用 指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式4.4.2 操作数寻址方式 指令中形成操作数或操作数地址的方式称为操作数的寻址方式 一般把指令中直接给出的地址称为形式地址 从形式地址生成有效地址的各种方式称为各种不同的存储器寻址方式 每种寻址方式都有一种对形式地址进行变换处理的运算规则单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式1立即寻址方式

5、指令的地址码字段指出的不是地址,而是操作数本身 由于在取出指令的同时也取出了操作数,所以指令的执行速度很快 但由于操作数是指令的一部分,不便于修改,降低了程序的通用性和灵活性 因此,立即寻址方式只适合于操作数固定的场合 通常用于为主存单元和寄存器提供常数 例如: ADD B, 33H;33H为立即数单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式2直接寻址方式 在指令的地址字段中直接指出操作数在主存中的地址 即形式地址等于有效地址 这种寻址方式简单、直观,是一种最基本的寻址方式单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成

6、与系统结构4.4 寻址方式 例如,INC 3A00H是一条加1指令,采用直接寻址方式,指令有效地址E=3A00H,表示将地址为3A00H的存储单元中的操作数加1FLASH演示单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式3间接寻址方式 指令地址码字段所指向的存储单元中存储的不是操作数本身,而是操作数的地址 需要多次访问主存储器,既增加了指令的执行时间,又要占用主存储器单元 但也为编程人员带来较大的灵活性,实现起来也很简便单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式 间接寻址指令可以访问较大的存

7、储空间,从而扩大指令的寻址能力 由于地址码位数的限制,如果采用直接寻址方式,能够访问的存储空间十分有限 而间接寻址的地址码所指向的存储单元则有足够的位数,因此可以访问全部存储空间单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式 例如,INC (3A00H)是一条加1指令,采用间接寻址方式,指令有效地址E=(3A00H)=4000H,将地址为4000H的存储单元中的操作数加1FLASH演示单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式4寄存器寻址方式 指令中的地址码是寄存器的编号,而不是操作数地址或

8、操作数本身 可分为直接寻址和间接寻址,区别在于: 前者的指令地址码给出寄存器编号,寄存器的内容就是操作数本身 后者的指令地址码给出寄存器编号,寄存器的内容是操作数的地址,根据该地址访问主存后得到真正的操作数 优点 用寄存器暂存操作数或其地址,无需访问主存,速度快单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式 例如,INC R1是一条加1指令,采用寄存器直接寻址方式,指令有效地址E=R1,将寄存器R1中的操作数加1FLASH演示单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式 例如,INC (R1)

9、是一条加1指令,采用寄存器间接寻址方式,指令有效地址为E=(R1)=3A00H,将地址为3A00H的存储单元中的操作数加1FLASH演示单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式5基址寻址方式 将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址 优点是可以扩大寻址能力 相对于形式地址,基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中进行寻址单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式 例如,INC BX+300H是一条加1指令,采用基址寻址方式,指令有效地址E=(BX)

10、+300H=0380H,将地址为0380H的存储单元中的操作数加1FLASH演示单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式6变址寻址方式 将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址 使用变址寻址方式的目的不在于扩大寻址空间,而在于实现程序块的规律性变化 有一个字符串存储在以AC1H为首址的连续主存单元中,只要将首地址AC1H作为指令中的形式地址,而在变址寄存器中指出字符的序号,便可访问字符串中的任一字符单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式 例如,INC RX+30

11、0H是一条加1指令,采用变址寻址方式,指令有效地址E=(RX)+300H=03AAH,将地址为03AAH的存储单元中的操作数加1FLASH演示单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式 变址寻址和基址寻址方法十分类似,但用途不同 变址寻址主要用于数组的访问 基址寻址则用于扩大寻址范围,从而在较大的存储空间中进行寻址单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式7相对寻址方式 把程序计数器PC的内容加上指令中的形式地址而形成操作数的有效地址 程序计数器的内容就是当前指令的地址,所以相对寻址是相

12、对于当前的指令地址而言的 此时的形式地址通常称为位移量 也就是操作数位置与当前指令位置之间的相对距离 其值可正可负,相对于当前指令地址而浮动 由于指令的地址和操作数位置相对固定,操作数与指令可以放在主存的任何地方,但仍能保证程序的正确执行单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式 例如,INC PC+200H是一条加1指令,采用相对寻址方式,指令有效地址E=(PC)+200H=2200H,将地址为2200H的存储单元中的操作数加1FLASH演示单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式

13、操作数寻址方式还有块寻址、段寻址方式等 块寻址是在指令中指出数据块的起始地址和数据块的长度,使用一条块寻址指令完成一个数据块的传送 段寻址是指将存储器空间划分为若干个单元,在寻址一个具体单元时,由一个基地址(CPU中的段寄存器)再加上某些寄存器提供的偏移量来形成有效地址 段寻址方式的实质还是基址寻址方式单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式【例4-1】一种二地址RS型指令的结构如右侧所示:I为间接寻址标志位,X为寻址模式字段,D为偏移量字段。通过I、X、D的组合,可构成右表所示的寻址方式。请写出6种寻址方式的名称。【解】直接寻址相对寻址

14、变址寻址寄存器间接寻址间接寻址基址寻址6位4位1位2位16位OP通用寄存器IX偏移量D寻址方式IX有效地址E算法说明(1)000E=D(2)001E=(PC)DPC为程序计数器(3)010E=(R2)DR2为变址寄存器(4)111E=(R3)(5)100E=(D)(6)011E=(R1)DR1为基址寄存器单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式【例4-2】某16位机器的指令格式和寻址方式如下所示。指令格式中的S(源)、D(目标)都是通用寄存器,M是主存中的一个单元,MOV是传送指令,STA为写数指令,LDA为读数指令。15 109 87

15、43 0OP目标源MOV S, D15 109 87 43 0OP基址源变址STA S, M位移量15 109 87 43 0OP目标LDA S, M20位地址单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式要求: 分析三种指令的指令格式与寻址方式特点。 CPU完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?【解】 第一种指令是单字长二地址指令,RR型。 第二种指令是双字长二地址指令,RS型,其中S采用基址寻址或变址寻址,R由源寄存器决定。 第三种也是双字长二地址指令,RS型,其中R由目标

16、寄存器决定,S由20位地址(直接寻址)决定。单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式 CPU完成第一种指令时间最短,RR型指令不需要访问存储器。 第二种指令所花时间最长,RS型指令需要访问存储器,同时要进行寻址方式的变换运算(基址或变址),这也需要时间。 第二种指令的执行时间不会等于第三种指令,因为第三种指令虽然也访问存储器,但节省了求有效地址运算的时间开销。单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式【例4-3】 某微机的指令格式如下所示:OP:操作码;D:位移量;X:寻址特征位,X=

17、00:直接寻址;X=01:用变址寄存器X1进行变址;X=10:用变址寄存器X2进行变址;X=11:相对寻址。设(PC)=1234H,(X1)=0037H,(X2)=1122H,请确定下列指令的有效地址。(1)4420H (2)2244H(3)1322H(4)3521H15 109 87 0OPXD单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式【解】(1)4420H = 010001 00 00100000 BX=00,D=20H,是直接寻址,有效地址E=D=20H(2)2244H = 001000 10 01000100 BX=10,D=44H

18、,是X2变址寻址,有效地址E=(X2)+D =1122H+44H=1166H(3)1322H = 000100 11 00100010 BX=11,D=22H,是相对寻址,有效地址E=(PC)+D =1234H+22H=1256H(4)3521H = 001101 01 00100001 BX=01,D=21H,是X1变址寻址,有效地址E=(X1)+D =0037H+21H=0058H单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式4.4.3 堆栈寻址方式 堆栈(Stack)是一组能存储和取出数据的暂时存储单元 所有信息的存入和取出均按照后进先出

19、(LIFO)或先进后出(FILO)的原则进行 堆栈存取方式决定了其“一端存取”的特点 数据按顺序存入堆栈称为进栈或压栈(Push) 堆栈中一个单元的数据称为栈项 栈项按与进栈相反的顺序从堆栈中取出称为出栈或弹出(Pop) 最后进栈的数据或最先出栈的数据称为栈顶元素单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式1寄存器堆栈 寄存器堆栈又称串联堆栈、硬堆栈 某些计算机在CPU中设置了一组专门用于堆栈的寄存器,每个寄存器可保存一个字的数据 因为这些寄存器直接设置于CPU中,所以它们是极好的暂存单元 CPU通过进栈指令(PUSH)把数据存入堆栈,通过出

20、栈指令(POP)把数据从堆栈中取出单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式 寄存器堆栈(FLASH演示)空栈表示栈顶无数据,即位于栈顶的寄存器中无可用数据;存入数据a,即把数据a存入栈顶,数据a可来自主存、程序计数器PC等部件;再存入数据b,数据b位于栈顶,先进入的数据a则移至下一个寄存器;执行出栈操作,位于栈顶的数据b被取出,同时数据a移至栈顶单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式 最后进栈的数据位于栈顶,位于栈顶的数据出栈时最先被取出 在寄存器堆栈中,还必须有“栈空”和“栈满”

21、的指示,以防在栈空时企图出栈、在栈满时企图进栈的误操作 可通过另外设置一个计数器来实现: 每次进栈,计数器加1,计数值等于堆栈中寄存器个数时表示栈满; 每次出栈,计数器减1,该计数值等于0时表示栈空 寄存器堆栈的特点是仅有一个出入口,后进先出,且堆栈的容量固定,不需要占用主存单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式2存储器堆栈 当前计算机普遍采用的堆栈结构是存储器堆栈 从主存中划出一块区域来作堆栈,又称软堆栈 堆栈的大小可变,栈底固定,栈顶浮动 由于主存容量越来越大,存储器堆栈能够满足程序员对堆栈容量的要求,而且在需要时可建立多个存储器堆

22、栈 三个主要优点:堆栈能够具有程序员要求的任意长度;程序员愿意建立多少堆栈就能建立多少堆栈可用存储器寻址指令来对堆栈中的数据进行寻址单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式 构成存储器堆栈的硬件有两部分 一是在主存中开辟用于堆栈的存储区 二是在CPU中设置一个专用的寄存器堆栈指针SP(Stack Pointer)来保存栈顶地址 除了硬件之外,还必须有实现进栈、出栈操作的指令 作为堆栈的存储区,其两端的存储单元有高、低地址之分,因此,存储器堆栈又可分为两种:单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级计算机组成与系统结构4.4 寻址方式1)从高地址开始生成堆栈(自底向上生成堆栈) 从高地址开始生成堆栈是一种较常用的方式,这种堆栈的栈底地址大于栈顶地址 FLASH演示 在建栈时,SP指向堆栈中地

温馨提示

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

评论

0/150

提交评论