Estimado,
Cómo estás? Bueno, en primer lugar aclarar que esto que voy a decir es referido a x86, que es lo que vemos en el curso, pero los segmentos son dinámicos, dado que el valor de los registros de segmento puede cambiar. Y una vez fijado el valor de un registro de segmento, como las direcciones se calculan como segmento * 16 + desplazamiento, fijado un valor para el segmento, los siguientes 64kb de memoria (2^16 direcciones obtenibles a partir de variar el desplazamiento de 16 bits) forman el segmento.
Resta ver que como los valores de los registros de segmento pueden ser cualquiera, es perfectamente posible que los segmentos se solapen:
Ej: ES = 0x1000, DS = 0x1100, y permitime el siguiente diagrama, bastante burdo:
0x10000 - - - - Comienza segmento ES
|
0x11000 - - - - Comienza segmento DS
|
| ; En este espacio de direcciones
| ; se solapan los segmentos.
|
0x1FFFF - - - - Termina segmento ES
|
0x20FFF- - - - Termina segmento DS
Saludos,
Federico