在16位x86分段内存体系 struct 上,四个寄存器用于引用各自的段:
该体系 struct 上的逻辑地址写为segment:offset
.现在回答这个问题:
近指针指(作为偏移)当前段.
远指针使用段信息和偏移量跨段指向.因此,要使用它们,必须将DS或CS更改为指定的值,取消对内存的引用,然后恢复DS/CS的原始值.请注意,它们上的指针算法不会修改指针的段部分,因此溢出偏移量只会将其环绕.
然后是巨大的指针,它们被规范化为给定地址的最大可能段(与远指针相反).
在32位和64位体系 struct 上,内存模型使用不同的段,或者根本不使用.