📜  什么是近,远和巨大的指针?(1)

📅  最后修改于: 2023-12-03 15:36:11.696000             🧑  作者: Mango

什么是近,远和巨大的指针?

在操作系统和计算机体系结构中,有时候需要涉及到指向虚拟地址空间的指针,而这些指针有时候被细分为“近指针”、“远指针”和“巨大指针”三种类型。下面将依次解释它们的含义以及在哪些情况下使用。

近指针

近指针是指它所指向的内存地址位于同一个段中,也就是在逻辑地址中高位前面相同的一段。在32位Windows中,每个段的长度默认为64KB,因此一个近指针可以访问到的最大内存空间为64KB。如果要访问超过这个范围的内存空间,就需要使用远指针或者巨大指针。

远指针

远指针是指它所指向的内存地址位于不同的段中,因此需要两个”地址”来表示它的位置。在32位Windows中,一个远指针是由一个16位段寄存器和一个32位偏移量来表示的。与近指针相比,远指针可以访问更大的内存空间,但是由于需要两个地址来表示,所以效率较低,通常只在某些特殊情况下使用。

巨大指针

巨大指针是指16位段寄存器存储一个指针所在的“段”的地址,而32位偏移量则存储了这个指针相对于所在段开始处的偏移量。因此,一个巨大指针可以访问到最多4GB的内存空间。巨大指针的使用与远指针相似,但是它的效率更高一些,通常在需要访问大量内存的情况下使用。

上述介绍介绍了近指针、远指针和巨大指针这三种指针类型的含义及其使用的情况,对于从事操作系统或计算机体系结构相关开发的程序员来说,熟悉这些知识是十分必要的。