Hola! Mirando las diapositivas de 8086, en la última diapositiva, cuando se invoca a la función len con una dirección absoluta, tengo la siguiente duda:
la dirección es 0x98765 y se hace lo siguiente:
mov bx,5
mov ax, 9876
mov ds, ax
call len
cómo se sabe que tiene que ir a buscar el array a la dirección 0x98765 si en ds quedó solo 9876?
Hola. Primero aclarar que la instrucción mov ax, 9876 debería ser mov ax, 0x9876.
Internamente la función len usa DS:BX como dirección de comienzo del string.
Las direcciones segmentadas (segmento:desplazamiento) son transformadas a direcciones físicas por el 8086 haciendo la cuenta segmento * 16 + desplazamiento.