Título: Duda sobre direccionamiento de la memoria Publicado por: Oppenheimer en 21 Septiembre 2013, 22:28 pm Buenas amigos, aquí os traigo una dudilla de novato total que espero que me podais resolver. El problema es el siguiente:
Con 2 bytes (1 palabra) en una arquitectura 8086 claro esta que se pueden direccionar 64k (16^4) de manera que se puede acceder a las posiciones de memoria desde 0 a FFFFh. Lo que no entiendo es el concepto de los registros de segmento y desplazamiento que sirven para superar este límite. la formulita como tal se que es esta 16xsegmento+desplazamiento y de esta manera se consigue un nibble más,pudiendo ahora direccionar 1Mb(16^5) desde 0 a FFFFFh. No llego a comprender como se consigue un nibble más gracias a esto del segmento y desplazamiento. Seguro que es una chorrada pero si alguien me pudiera aclarar este concepto un poco así en términos que entienda se lo agradecería muchísimo. Un saludo! Título: Re: Duda sobre direccionamiento de la memoria Publicado por: .:UND3R:. en 22 Septiembre 2013, 23:14 pm Me obligaste a repasar un libro que hace un tiempito me leí, lo que estás comentando lo relacionaré con el procesador 8086, este tiene dos modos de programación (los cuales tratan de forma distinta la memoria):
Modo protegido: Este es utilizado comúnmente (ideal para modelo de memoria FLAT), utiliza direcciones desde 0 hasta FFFFFFFFh (DWORD). Modo direccionamiento lineal: El procesador 8086 no podía almacenar direcciones de 20 bit en sus registros de 16 bits, por lo que se creó la "memoria segmentada", en donde la dirección se representa por: segmento(WORD) + desplazamiento (WORD) = dirección resultante (DWORD) ej: 0800:120D los segmentos más comunes son: CS, DS, SS, ES, FS, GS. ejemplo: mov ax,@data mov ds,ax mov eax,300h call x Saludos Título: Re: Duda sobre direccionamiento de la memoria Publicado por: Oppenheimer en 23 Septiembre 2013, 20:07 pm Amigo! vale muchas gracias. Yo me estaba haciendo la picha un lío ya por esta tontería. A veces la explicación mas obvia es la correcta jajaja. Yo me creía que se multiplicaba de verdad en la formulita de mas arriba xd
Muchas gracias por la aclaración ;) |