Desplazamiento

En un programa, todas la localidades de memoria están referidas a una dirección inicial de segmento. La distancia en bytes desde la dirección del segmento se define como el desplazamiento (offset).

Un desplazamiento de dos bytes (16 bits) puede estar en el rango de 0000H hasta FFFFH, o bien, desde cero hasta 65, 535. Así el primer byte del segmento de código tiene un desplazamiento 00, el segundo byte tiene un desplazamiento 01, etc. hasta el desplazamiento 65, 535. Para referir cualquier dirección de memoria en un segmento, el procesador combina la dirección del segmento en un registro de segmento con un valor de desplazamiento.

En el ejemplo siguiente, el registro DS contiene la dirección de segmento del segmento de datos en 045F[0]H y una instrucción hace referencia a una localidad con un desplazamiento de 0032H bytes dentro del segmento de datos.


Por lo tanto, la localidad real de memoria del byte referido por la instrucción es 04622H;

Dirección del segmento DS:  045F0H
Desplazamiento:                  +0032H
Dirección real:                       04622H

Note que un programa tiene uno o mas segmentos, los cuales pueden iniciar casi en cualquier lugar de memoria, variar en tamaño y estar en cualquier orden.