物理地址的算法
物理地址就是绝对地址,网上找了下资料,绝对地址=段地址*16+偏移地址。 这个公式是绝对的么?还有,偏移地址能再帮忙说的更通俗一点吗,似懂非懂的样子。谢谢啦~ 在入门视频里的第五章第一节里面,有个例子是说“段地址2000,偏移地址1000,其中的内容为0010H,合成的物理地址为(21000H)=0010H 本帖最后由 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就是偏移,偏移是在段地址确认后 才能计算出来的 同一个物理地址的偏移地址也不一定相同,还要看你的段地址 学习了!{:1_1:}{:1_1:}{:1_1:} 受教了谢谢
wAterLoo 发表于 2012-5-30 15:05 static/image/common/back.gif
这个不是绝对的,取决于CPU的地址线的宽度,8086 CPU地址线的宽度只有16位,只能寻址64KB的空间,如果使用偏 ...
谢谢啊,清楚了 wAterLoo 发表于 2012-5-30 15:05 static/image/common/back.gif
这个不是绝对的,取决于CPU的地址线的宽度,8086 CPU地址线的宽度只有16位,只能寻址64KB的空间,如果使用偏 ...
对于您的第二个回答我有点不明白,像您举的例子中 (1810 = 18 * 100 + 10 那这10就是偏移,若分10一段1810 = 181 * 10 +0 那0就是偏移) 后面的乘数怎么能变呢,比如8086的cpu中寻找总线有20位,所以它的物理地址=段地址*16+偏移地址,而称数16是固定的吧,而像您举得例子中怎么变了呢 本帖最后由 wAterLoo 于 2012-6-2 17:30 编辑
努力学习 发表于 2012-5-31 21:54 static/image/common/back.gif
对于您的第二个回答我有点不明白,像您举的例子中 (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
我还是不太懂,我看小甲鱼的视频,在看怎么感觉没看过,
页:
[1]