Cuando se trabaja en arquitecturas con memoria segmentada (como modo real x86), se puede distinguir tres tipos de direcciones de puntero (ejemplos para x86 en el segmento: notación offset):
cerca de
almacena Sólo la parte de desplazamiento (que es de 16 bits) - al resolver un puntero tal, el desplazamiento del segmento de datos actual se usará como dirección de segmento.
lejos
Tiendas segmento y de direcciones de desplazamiento (16 bits cada uno), definiendo así una dirección física absoluta en la memoria.
enorme
Igual que el puntero el momento, pero puede ser normalizada, es decir 0000:FFFF + 1
será envuelto alrededor apropiadamente a la siguiente dirección de segmento.
En los sistemas operativos modernos esto no importa ya que el modelo de memoria es generalmente plana, utilizando la memoria virtual en lugar de abordar directamente la memoria física (al menos en el anillo 3 aplicaciones).
Guau, punteros cercanos y lejanos. Esos fueron los días. ¿Alguien todavía está usando esto, o es solo una prueba obsoleta? –
Esto está bastante desactualizado, pero apuesto a que esto sigue siendo relevante en algunos sistemas incorporados ... –