寻址技术

寻址技术

寻址,就是寻找地址。

给你一个房间号F1003,让你找这个房间。如果我们第一次来到一个新校园,好懵逼啊,这怎么找,F代表什么,1003难道是第一千零三个房间吗?或者F1是某栋楼的简称,003是第三个房间?

(1)如果规定是,F表示辅助楼,第一个数代表楼层,后3位数是房间编号。

(2)然后给我一条去往辅助楼的路线,告诉我楼梯在楼宇中的位置。

OK,没问题,很快找到这个小房间。这里第一点对应的术语是编址方式,第二点是寻址方式。

编址方式

下面每个格子代表一位,一行有16个格子,代表机器字长为16

位编址

一位一个地址

字节编址

一个字节(8位)一个地址

在计算机中最基本的单位是字节,位地址中的大多数地址都不会使用,造成大量浪费。

对于处理字符,每个字符占一个字节,字节编址比较好。

对于处理数字,数字一般占用2个(short)或4个(int、float)字节,字编址比较好。

寻址方式

对于寻找的目标不同,寻址分为指令寻址和数据寻址

如果寻找的是将要执行的指令的地址,就是指令寻址

如果寻找的是操作数的地址,就是数据寻址

天真永不消逝,浪漫至死不渝——墨香铜臭

不管你在哪里,兜兜转转还是会找到你。地址也是一样。

数据寻址

立即寻址

简单粗暴,直接去见你。操作数就在操作码指令里,程序直接调用该操作数,但仍然得根据操作码去找具体的操作。

寄存器寻址

根据寄存器的编号,去指定的寄存器取数,速度很快。

直接寻址

根据主存地址去主存中找操作数

间接寻址

对地址进行分类,如果一个地址指向的是地址,那么称它为间接地址;如果指向的是操作数,那么称它为有效地址

主存地址可以指向间接地址或有效地址,间接地址可以指向间接地址或有效地址

为了区分是间接地址还是有效地址,用存储单元的最高位来分辨

寄存器间接寻址

寄存器2中存放的是有效地址

变址寻址

将寄存器中的变址值(变量)与形式地址(常量)相加,得到有效地址

基址寻址

和变址寻址类似

将寄存器中的基址值(常量)与位移量(变量)相加,得到有效地址

位移量可正可负

相对寻址

将程序计数器中的指令地址(变量)与位移量(变量)相加,得到有效地址

页面寻址

将地址高n位相同的主存单元分为一组,每组称为1个页面

有效地址分成两部分,一部分是页面地址,用于找到对应的页;另一部分是页内地址,用于找到页中的主存单元

根据页面地址的来源,页面寻址可分为3种方式

基页寻址(零页寻址):页面地址固定全0

当前页寻址:页面地址等于程序计数器(PC)的高几位

页寄存器寻址:页面地址取自寄存器

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

指令寻址

顺序寻址

不用干预,自动按顺序往下执行。这个指令的顺序保存在程序计数器(PC)中

跳跃寻址(同上)

1.直接寻址

2.相对寻址

3.间接寻址

感谢您的阅读,希望您能摄取到知识!加油!冲冲冲!(发现光,追随光,成为光,散发光!)我是程序员耶耶!有缘再见。<-biubiu-⊂(`ω´∩)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容