首页
社区
课程
招聘
[求助] 关 于 物 理 地 址 的 问 题 ?
发表于: 2007-7-31 19:20 3935

[求助] 关 于 物 理 地 址 的 问 题 ?

2007-7-31 19:20
3935
一直没有懂明白,书上说:

  物理地址=左移4位的段地址+偏移地址

可是段地址是16位如果左移4位的话,那不是限制了内存大小只有FFFFF也就是1M,再说段地址只左移4位的话,偏移地址不最多只能有4位,否则从实模式的内存地址可以计算出物理地址,但是确不能从 物理地址逆向计算出 实模式的内存地址了?

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
2
看的是8086汇编语言程序设计?呵呵
  要是不明白建议楼主看看<微机原理>类似的书籍.
8086和8088中,物理地址是20位的,是1M的存储空间,但是寄存器是16位,只能寻址64KB,所以才会用段.物理地址=段的基址+相对于段基址的偏移地址
这样来算,2的20次方个存储空间,最多只能分成2的16次方个段.所以规定每个段的基址必须要是16字节的倍数,所以任何段的基址后四位总是0.注意上面我加亮的字,段的基址,并不是段寄存器中保存的数字,既然后四位都是0,这四个0还用得着保存吗,段寄存器并不保存段基址的后面四位.这样以来段基址实际上就等于段寄存器*16,也就是把段寄存器中的数字左移四位.
386的实模式下,寻址方式和上面一样的.知道段基址和偏移地址,能得出物理地址,但是从物理地址不能直接推出段基址和偏移地址.
2007-7-31 21:04
0
雪    币: 211
活跃值: (66)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢 终于搞明白了
2007-8-4 18:18
0
游客
登录 | 注册 方可回帖
返回
//