“21天好习惯”第一期——4

计算机组成原理

        计算机常见寻址方式

  1.     立即寻址
  2. 主存之间寻址
  3. 寄存器直接寻址
  4. 主存间接寻址
  5. 寄存器间接寻址
  6. 变址寻址
  7. 基址寻址
  8. 基址加变址寻址
  9. PC相对寻址
  10. 页面寻址

1、立即寻址

        由指令直接给出操作数,直接对指令中代码段进行截取获得操作数,这种方式被称为立即寻址方式。立即寻址获取的操作数称为立即数。虽然立即寻址快速、简便的获取操作数,但实用的范围不广。

        指令操作数存放方式:一种是操作数直接包含在指令中,还一种是将操作数存放在指令后,即在读取指令后再从紧随其后的存储单元中读取获得操作数。

“21天好习惯”第一期——4_第1张图片

2、主存直接寻址

          在指令中直接给出操作数的有效主存地址,根据该地址可从主存储器中读取或写入操作数,这种方式被称为直接寻址方式。由于这个地址就是最终读取操作数的有效地址,不再进行任何地址转换操作,故直接寻址又可称为绝对寻址。

“21天好习惯”第一期——4_第2张图片

直接寻址的优点:简单直观。便于用硬件实现,适用于寻址固定的操作数。

直接寻址的缺点:(1)有效地址是指令的一部分,不能随程序的需要而动态改变,因而该指令只能访问某个固定的主存单元。(2)指令中需要给出全字长的地址码,由于地址码在指令中所占位数较多,会导致这个指令很长。

3、寄存器直接寻址

               寄存器直接寻址(寄存器寻址)方式:在指令中直接给出寄存器号,操作数实际存储在指令编号的寄存器中。CPU中有若干寄存器,其中一些可编程访问,也称为通用寄存器。在设计时,要为寄存器分配不同的编号代码,如R-000、R-001等。

“21天好习惯”第一期——4_第3张图片

寄存器寻址有两个主要优点:(1)从CPU的寄存器中读取操作数要比访问主存快得多,所需时间大约是从主存中读取的几分之一到几十分之一。CUP中设置足够多的寄存器是提供CPU工作效率的重要措施之一。(2)由于寄存器数远小于主存储器的单元数,因此指令中存放寄存器号的字段位数就大大小于存放主存地址所需的位数。有效缩短指令长度,使得读取指令的时间减少,提高了CPU的工作效率。

4、主存间接寻址

        若操作数存放在某个主存单元中,则该主存单元的地址被称为操作数地址。若操作数地址又存放在另一主存单元中(不是由指令直接给出),则该主存单元被称为间址单元。间址单元本身的地址被称为操作数地址的地址,即操作数的间接地址。

          主存间接寻址:指令中给出主存间址单元地址(间接地址,操作数地址的地址)按照该地址访问主存中的间址单元,从中读取操作数地址,按操作数地址再次访问主存,然后从相应单元中读取或写入操作数。主存间接寻址方式的助记符常用@表示,如,指令INC@A表示:间址单元的地址码为A,根据A读取操作数的有效地址,在根据有效地址读取操作数后,操作数加一。

“21天好习惯”第一期——4_第4张图片

主存间接寻址可将间址单元当成一个读取或写入操作数的地址指针,它指示操作数在主存中的位置。这种寻址方式有力支持了程序的循环操作,也能实现程序的共享。增加了编程的灵活性,但访存操作通常比较耗时,因此这种方式增加了访问次数获取操作数的速度很慢。

5、寄存器间接寻址

              寄存器间接寻址的定义:指令中给出寄存器号,指定的寄存器号中存放的是操作数的有效地址,按照该有效地址访问主存,读取或写入操作数。寄存器间接寻址方式的助记符号(R)表示。如,指令INC(R)表示:将寄存器R的内容作为有效地址,从主存中读取操作数,再将操作数加1.

“21天好习惯”第一期——4_第5张图片

     采用寄存器间接寻址的方式,可以选取某通用寄存器作为地址指针,它指向操作数在主存中的存储位置。修改寄存器内容,可使同一指令在不同时间访问不同的主存单元。

     寄存器间接寻址的两个显著优点:(1)寄存器间接寻址方式比主存间接寻址方式少访问一次主存,且由寄存器提高有效地址及修改寄存器内容,比从主存中读取有效地址及修改主存单元内容要快得多。(2)指令中给出的寄存器号位数比主存单元的全地址码位数少很多,且寄存器的宽度可以设计得很大,足够容纳全字长的地址码。

6、变址寻址

      变址寻址的定义是:指令中分别给出一个寄存器号和一个形式地址,寄存器中的内容作为偏移量,形式地址作为基准地址,将基准地址和偏移量相加得到操作数的有效地址,再按此地址访问主存,从相应的主存单元中读取操作数,或把操作数写入此主存单元。变址方式常用助记符号      :       X(R)表示。如,INC  X(R),R表示以寄存器R的内容为偏移量,以指令后邻单元存储的形式地址D为基准地址,两者相加得有效地址。

“21天好习惯”第一期——4_第6张图片

7、基址寻址

    基址寻址的定义:指令中分别给出一个寄存器号和一个形式地址,寄存器中的内容作为基准地址,形式地址作为偏移量,将基准地址与偏移量相加作为操作数的有效地址,再按此地址访问主存,在相应的主存单元中读取或写入数据。

“21天好习惯”第一期——4_第7张图片

变址寻址方式立足于面向用户,可用于访问字符串、数组、表格等成批数据;基址寻址方式立足于面向系统,用来解决程序在时间主存中重定位问题,以及在有限字长指令中扩大寻址空间等。

8、基址加变址寻址

      基址加变址寻址方式的定义是:指令中给出一个基址寄存器号R0、一个变址寄存器号Rx和一个形式地址D,基址寄存器的内容作为基准地址,变址寄存器的内容作为变址偏移量,形式地址则作为常规偏移量。

“21天好习惯”第一期——4_第8张图片

这样的寻址方式可以方便地处理二维数组或表格。

9、PC相对寻址

      PC相对寻址的定义是:将程序计数器PC当前的内容作为基准地址,指令中给出形式地址为偏移量(可正,可负),两者相加后形成操作数的有效地址。这种寻址方式是以PC当前的内容为基准进行偏移定位(往前或往后)的,所以称为相对寻址。

“21天好习惯”第一期——4_第9张图片

10、页面寻址

       页面寻址在MIPS指令集中也被称为伪直接寻址方式,定义是:寄存器PC的高位段作为有效地址的高位段,指令中给出的形式地址d作为有效地址的低位段,操作数的有效地址由这两部分地址段拼接而成。

“21天好习惯”第一期——4_第10张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

你可能感兴趣的:(个人学习笔记,计算机网络,其他,硬件工程)