【计算机系统】寻址模式详解与总结

【计算机系统】寻址模式详解与总结

完整意义上的指令应该由操作码和操作数构成,实际中操作数经常存放在与指令不同的位置,寻址指的就是根据指令本身和CPU当前状态决定操作数位置,并获取操作数的过程。假设指令为:
o p [ A d d r ] op [Addr] op[Addr]

其中 A d d r Addr Addr即为形式地址,[ ]为访存符号。所谓形式地址就是一种抽象意义的地址,可以是寄存器(指令里的寄存器相当于数值化地址的宏定义)、操作数或是实际地址等,依据指令的具体形式来确定形式地址。在这里插入图片描述

图1 常见寻址模式总结

将上述寻址模式中形式地址 A d d r Addr Addr与有效地址EA(Effective Address)的对应用图2给出

在这里插入图片描述

图2

图1、图2只介绍了常见的寻址模式,而图3是寻址模式更加完整的框架图。例如利用基址寄存器BR、变址寄存器IR、比例因子S和偏移量A可以映射
E A = [ B R , I R , S , A ] = [ B R + I R × S + A ] EA=[BR,IR,S,A]=[BR+IR×S+A] EA=[BR,IR,S,A]=[BR+IR×S+A]

只要根据此框架组合就可以得到不同的寻址模式。
在这里插入图片描述

图3 寻址架构

从有效地址到操作数实际存储的物理地址还需要考虑段基地址,一般而言:
物理地址=段基地址+有效地址
段基地址存储在段寄存器中,例如DS,CS,SS,ES;有效地址由基址寄存器(例如BX、BP)和变址寄存器(例如DI、SI、IP等)进行映射,当然基址和变址寄存器也可用通用寄存器代替。

在计算机中引入如此繁多的寻址方式的目的在于:
①打破现实约束:指令本身长度有限(常等于一个机器字长),难以存放多个庞大的内存地址
②满足灵活性要求:丰富的寻址模式更适合编程中的实际需求。例如间接寻址扩大了寻址的范围。
③满足安全性要求:保护模式

总之,多种寻址模式比直接基于平坦的线性空间进行编程更加适合工程实践。


🔥 更多精彩专栏


👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Winter`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值