操作系统2——80x86寻址方式概括总结

书上总共讲了十种寻址方式,这十种寻址方式,从第一种到第十种,其有效地址的计算复杂度逐渐增加。首先我们要弄清楚几个概念,即什么是有效地址,什么是段地址,什么又是基址,什么又是变址。有效地址是偏移地址,它和段地址共同构成存储器中的物理地址。那么要求得这个有效地址,就有很多方法,不同的方法对应不同的寻址方式。段地址是分配给段的物理地址,是某一段地址的开始地址,存储在DS等段寄存器中,而基址和变址都是相对于不同的寻址方式而产生的,一般都对应与特定的寻址方式。一般基址寄存器为BX,而变址寄存器为SI。下面还要解释几个名词,即间接和相对的含义。间接指的是某一个地址并不是直接拿到的,而是存储在另外一个应经给出地址的存储单元或者寄存器中,必须先拿出它的地址,才能拿出它的内容,也就是说要拿到内容必须进行至少两次的取。而相对的含义,就是指在地址上要进行一定的运算,必须根据给出的相对始地址求得实际地址,从而根据实际地址求得具体的操作数。理解了这两个概念有助于识记寻址方式。


下面我只说明各个寻址方式的有效地址的计算方法:


1:立即寻址——操作数在指令中

2:寄存器直接寻址——有效地址在寄存器中

3:寄存器间接寻址——有效地址在寄存器给出的存储单元中

4:直接寻址——有效地址在指令中

5:寄存器相对寻址——基址或者变址寄存器+偏移量

6:基址变址寻址——基址+变址

7:相对基址变址寻址——基址+变址+偏移量

8:比例变址和基址比例变址和相对基址比例变址这最后三个寻址方式,都是在变址上乘以一个比例因子做换算,最后得出实际地址


另外书上还讲了段内寻址和段间寻址,段内寻址是相对于IP寄存器的,而段间寻址还需要改变CS等段寄存器的值,所以在进行堆栈操作的时候要把相应的段寄存器压入堆栈中。以上便是对80x86寻址方式的简介。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值