鱼C论坛

 找回密码
 立即注册
查看: 2064|回复: 8

物理地址的算法

[复制链接]
发表于 2012-5-30 14:48:12 | 显示全部楼层 |阅读模式

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

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

x
物理地址就是绝对地址,网上找了下资料,绝对地址=段地址*16+偏移地址。   这个公式是绝对的么?还有,偏移地址能再帮忙说的更通俗一点吗,似懂非懂的样子。谢谢啦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-5-30 14:52:25 | 显示全部楼层
在入门视频里的第五章第一节里面,有个例子是说“段地址2000,偏移地址1000,其中的内容为0010H,合成的物理地址为(21000H)=0010H
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-30 15:05:07 | 显示全部楼层
本帖最后由 wAterLoo 于 2012-6-2 17:14 编辑

这个不是绝对的,取决于CPU的地址线的宽度,如果8086 CPU地址线的宽度只有16位,只能寻址64KB的空间,而实际8086有20位,所以使用偏移的寻址方式,可以寻址1024KB,也就是1Mb的空间 至于第二个问题,偏移地址,由于8086CPU寻址采取偏移+分段的寻址方式,那么你就要明白,分段的概念,比方说1810 若分100一段,那么1810 = 18 * 100 + 10 那这10就是偏移,若分10一段  1810 = 181 * 10 +0 那0就是偏移,偏移是在段地址确认后 才能计算出来的 同一个物理地址的偏移地址也不一定相同,还要看你的段地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-30 15:34:23 | 显示全部楼层
学习了!{:1_1:}{:1_1:}{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-30 19:14:09 | 显示全部楼层
受教了  谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-5-31 11:07:23 | 显示全部楼层

谢谢啊,清楚了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-31 21:54:52 | 显示全部楼层
wAterLoo 发表于 2012-5-30 15:05
这个不是绝对的,取决于CPU的地址线的宽度,8086 CPU地址线的宽度只有16位,只能寻址64KB的空间,如果使用偏 ...

对于您的第二个回答我有点不明白,像您举的例子中 (1810 = 18 * 100 + 10 那这10就是偏移,若分10一段  1810 = 181 * 10 +0 那0就是偏移  )   后面的乘数怎么能变呢,比如8086的cpu中寻找总线有20位,所以它的物理地址=段地址*16+偏移地址,而称数16是固定的吧,而像您举得例子中怎么变了呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-2 17:13:04 | 显示全部楼层
本帖最后由 wAterLoo 于 2012-6-2 17:30 编辑
努力学习 发表于 2012-5-31 21:54
对于您的第二个回答我有点不明白,像您举的例子中 (1810 = 18 * 100 + 10 那这10就是偏移,若分10一段   ...

前面有笔误,8086是20位 抱歉!!
乘数取决于CPU DS数据段寄存器的值,不过这个值只能是64K的整数倍,
那么同一个地址 9001H ,
如果DS=1000H,IP=1H
如果DS=2000H,IP=1000H
而我上面的100,10只是为了说明分段概念,实际8086 cpu中每个段都是64K的整合倍,不会是100,10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-2 18:18:57 | 显示全部楼层
我还是不太懂,我看小甲鱼的视频,在看  怎么感觉没看过,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-28 22:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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