当前位置: 代码迷 >> 汇编语言 >> 逻辑地址和线性地址的有关问题
  详细解决方案

逻辑地址和线性地址的有关问题

热度:311   发布时间:2013-02-26 00:00:00.0
逻辑地址和线性地址的问题
用softice看了一下GDT
select type base limit
0008 code32 00000000 FFFFFFFF
0028 TSS32 80042000 000020AB

base就是线性地址,0008:00000000 - 0008:FFFFFFFF
如果 0008:80042000 那么它的线性地址不就是 80042000 了吗?
那么线性地址也应该是唯一的,这样的话不就会重复了吗?


------解决方案--------------------------------------------------------
80042000 ;是基地址 
000020AB ;是段界限
线性地址范围80042000H~800440ABH

------解决方案--------------------------------------------------------
select是选择子,base是基地址,limit是段界限,
在32位下逻辑地址是段选择子:偏移地址,线性地址是基地址+偏移地址(主要此时基地址不要乘以16),
所以你说:如果 0008:80042000 那么它的线性地址不就是 80042000是不对的,因为0008是段选择子,
基地址要通过段选择子在GDT表中去查找、获得 

  相关解决方案