汇编程序设计-15-内存地址的表示方式

本文探讨了8086CPU中段地址和偏移地址如何组合成物理地址,解释了16位段地址寄存器如何在20位地址线的系统中工作。通过地址加法器,段地址乘以16再加上偏移地址得到物理地址,例如073F:0100转化为74F0H。即使不同的段地址和偏移地址组合,如果其物理地址相同,所表示的内容也是相同的。

在这里插入图片描述
073F:0100
段地址:偏移地址

段地址寄存器:ds,es,ss,cs且都是16位寄存器,他们的寻址能力为2的16次方。
那地址范围为:
0000 0000 0000 0000 --> 1111 1111 1111 1111
但8086CPU有20根地址线,则该cpu的寻址能力为2的20次方。地址的范围为:
0000 0000 0000 0000 0000 --> 1111 1111 1111 1111 1111
但段地址地存器都是16位的,在物理上是无法表示20位地址线的。那如何表示呢?
于是就为8086CPU增加了一个地址加法器

段地址*16 + 偏移地址 = 物理地址

比如:
段地址 偏移地址
F230H *(10H) + 00C8H
在这里插入图片描述

基础地址 + 偏移地址 = 物理地址

有如下
在这里插入图片描述
则反过来可以求偏移地址
在这里插入图片描述
在这里插入图片描述
对于DOSBOX中
在这里插入图片描述
073F:0100 它的物理地址就为 073F10H + 0100H = 74F0H
073E
10H + 0110H = 74F0H
虽然段地址、偏移地址不同,但最终的物理地址是一样的,那表示的内容会不同吗?
使用d命令可以查看
在这里插入图片描述
从结果可以看出,只要计算的物理地址相同,那表示的内容就是相同的。

在这里插入图片描述
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

发如雪-ty

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

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

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

打赏作者

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

抵扣说明:

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

余额充值