鱼C论坛

 找回密码
 立即注册
查看: 1254|回复: 3

[技术交流] 我可以这么理解寻址方式吗?

[复制链接]
发表于 2022-5-27 17:23:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我可以这么理解寻址方式吗?

8086CPU寻址方式
[idata]                直接寻址  idata是立即数
[bx]                        寄存器间接寻址
[si]                        寄存器间接寻址
[di]                        寄存器间接寻址
[bp]                        寄存器间接寻址
[bx+idata]                寄存器相对寻址(bx是相对立即数idata的偏移地址)
[bx+si]                bx是偏移地址,段地址默认ds,si是相对bx的偏移地址
[bx+si+idata]        bx是偏移地址,段地址默认ds,si是相对立即数idata的偏移地址

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-27 19:27:58 From FishC Mobile | 显示全部楼层
    一般的寄存器间接寻址,方括号内是偏移,默认段地址在 ds 寄存器,只有涉及到 bp 寄存器的间接寻址(方括号内的表达式中有 bp 寄存器)比较特殊,其段地址在 ss 寄存器中。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-28 10:35:23 | 显示全部楼层
本帖最后由 竹逸 于 2022-5-28 10:41 编辑
jackz007 发表于 2022-5-27 19:27
一般的寄存器间接寻址,方括号内是偏移,默认段地址在 ds 寄存器,只有涉及到 bp 寄存器的间接寻址(方 ...


关于地址(比如段地址、基址、偏移地址、物理地址)我是这样理解的

  1. 物理地址:是唯一的内存地址

  2. 内存中每一个存储单元都是以线性排列的,为了方便区分谁是谁,我们用记标号的方式来定位每一个存储单元,第一个存储单元从0开始标号,以此类推,这些标号就是每一个存储单元在当前位置的地址值,存储单元都是实实在在存在的,所以把为这些存储单元分配的地址值称为物理地址

  3. 8086 CPU内部是16位的,也就是说各个总线的宽度均为16位,可是它与外部器件的地址总线宽度是20位,那么8086CPU是如何实现用内部16位的地址总线去寻址外部20位的物理地址呢?

  4. CPU的设计师就想出了一个折中的办法,用两个16位的地址来合成一个20位的物理地址,其中一个16位的地址就称为段地址,另一个16位的地址就称为偏移地址,段地址和偏移地址都是16位的,用十六进制表示则是4位,他们通过地址加法器把4位的段地址左移一位来组成一个5位的基础地址,相当于原来的4位数*10H后变成了5位数,然后和偏移地址相加合成物理地址

  5. 段地址*10H + 偏移地址 = 物理地址

  6. 基础地址也是物理地址,是段首地址(一个段中连续内存单元的起始地址)

  7. 偏移地址是相对于基址的偏移量

  8. 段地址     基址     偏移地址     物理地址
  9. 0000     00000     0~F          00000~0000F
  10. 0001     00010     0~F          00010~0001F
  11. 0002     00020     0~F          00020~0002F
  12. ……

  13. FFFF     FFFF0     0~F          FFFF0~FFFFF

  14. 可以看出段地址每增1,则基础地址增10H,也就说明上下段的间隔是16个存储单元,而这16个存储单元是通过偏移地址来索引的,基础地址负责定位每个段首地址,通过 段地址*10H+偏移地址 的方式就可以完美索引到外部20位(00000~FFFFF)物理地址
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-28 11:22:00 From FishC Mobile | 显示全部楼层
当然内存地址并没有被分段,这里的分段是由于内部总线位数的不足而引出的概念,偏移地址的索引范围也不是只有0~f,最大值应该是ffff,这是只是便于理解就将索引范围定为只有16个字节
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 01:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表