-
-
未解决 [求助]关于段寄存器的疑问
-
发表于: 2019-11-16 14:43 1869
-
初学操作系统,看到保护模式一块.书里提到8086时代有很多程序利用了"地址回绕"这一特性,后来地址线进行拓展,超过2**20-1的地址是否回绕就成了问题,为了兼容,后来的cpu设置了A20Gate.
我的问题是,"可以通过多种 段基址+段内偏移地址 的组合选择某一个特定地址"这一特性是否也被当时的程序广泛使用?按照我的理解,保护模式下段寄存器的值成为了一个数组的下标,而这个数组存放着每个段的起始地址,这个数组由操作系统负责管理.假设一种情况:实模式下,程序设置段基址0x1000H,偏移地址0x1000H,在此处写入一个字符'a';之后,设置段基址0x1100H,偏移地址为0,此时读取应该还是字符'a'.在保护模式下是怎样保证能够取到'a'的?
如果没有被广泛使用,原因又是什么呢?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
看原图
赞赏
雪币:
留言: