【学习计算机组成原理】寻址技术(少话,多图,生动)

寻址,通俗讲就是寻找地址

比喻:给你一个房间号F1003,让你找这个房间。如果我们第一次来到一个新校园,好懵逼啊,这怎么找,F代表什么,1003难道是第一千零三个房间吗?或者F1是某栋楼的简称,003是第三个房间?
怎么才能快速找到这个房间呢?
(1)如果规定是,F表示辅助楼,第一个数代表楼层,后3位数是房间编号。
(2)然后给我一条去往辅助楼的路线,告诉我楼梯在楼宇中的位置。
OK,没问题,很快找到这个小房间。这里第一点对应的术语是编址方式,第二点是寻址方式。

编址方式

下面每个格子代表一位,一行有16个格子,代表机器字长为16
位编址
一位一个地址
在这里插入图片描述
字节编址
一个字节(8位)一个地址
在这里插入图片描述
字编址
一个字(字长16)一个地址
在这里插入图片描述
在计算机中最基本的单位是字节,位地址中的大多数地址都不会使用,造成大量浪费。
对于处理字符,每个字符占一个字节,字节编址比较好。
对于处理数字,数字一般占用2个(short)或4个(int、float)字节,字编址比较好。

寻址方式

对于寻找的目标不同,寻址分为指令寻址和数据寻址
如果寻找的是将要执行的指令的地址,就是指令寻址
如果寻找的是操作数的地址,就是数据寻址

新瓶装旧酒! ----李彦宏

数据寻址

立即寻址
简单粗暴,不用去找数了,数就在指令里。但仍然得根据操作码去找具体的操作。
在这里插入图片描述
寄存器寻址
根据寄存器的编号,去指定的寄存器取数,速度很快。
在这里插入图片描述
直接寻址
根据主存地址去主存中找操作数
在这里插入图片描述
间接寻址
对地址进行分类,如果一个地址指向的是地址,那么称它为间接地址;如果指向的是操作数,那么称它为有效地址
主存地址可以指向间接地址或有效地址,间接地址可以指向间接地址或有效地址
在这里插入图片描述
为了区分是间接地址还是有效地址,用存储单元的最高位来分辨
在这里插入图片描述
寄存器间接寻址
寄存器2中存放的是有效地址
在这里插入图片描述
变址寻址
将寄存器中的变址值(变量)与形式地址(常量)相加,得到有效地址
在这里插入图片描述
基址寻址
和变址寻址类似
将寄存器中的基址值(常量)与位移量(变量)相加,得到有效地址
位移量可正可负
在这里插入图片描述
相对寻址
将程序计数器中的指令地址(变量)与位移量(变量)相加,得到有效地址
在这里插入图片描述
页面寻址
将地址高n位相同的主存单元分为一组,每组称为1个页面
在这里插入图片描述
有效地址分成两部分,一部分是页面地址,用于找到对应的页;另一部分是页内地址,用于找到页中的主存单元
在这里插入图片描述
根据页面地址的来源,页面寻址可分为3种方式

  • 基页寻址(零页寻址):页面地址固定全0
  • 当前页寻址:页面地址等于程序计数器(PC)的高几位
  • 页寄存器寻址:页面地址取自寄存器

指令中的多个地址码的寻址方式可不同


指令寻址

顺序寻址
不用干预,自动按顺序往下执行。这个指令的顺序保存在程序计数器(PC)中
在这里插入图片描述
跳跃寻址(同上)

  1. 直接寻址
    在这里插入图片描述
  2. 相对寻址
    在这里插入图片描述
  3. 间接寻址
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44611096/article/details/106786577
今日推荐