SlideShare una empresa de Scribd logo
LENGUAJE ENSAMBLADOR: DIRECCIONAMIENTO DE MEMORIA RAM.

La memoria RAM está seccionada en bytes. Por lo tanto, cada sección de la RAM,
o sea, cada byte (8 bits) puede almacenar un total de 28=256 distintos valores.
Desde el dato 00000000 hasta 11111111 o lo que es lo mismo: desde 00H hasta
FFH.

El microprocesador 8086 es un procesador de 16 bits, lo que significa que los
registros del procesador son de una capacidad de procesamiento de 16 bits. Esto
es, si deseamos almacenar en RAM el valor de un registro como el AX, será
necesario utilizar 2 bytes o lo que es lo mismo, 2 localidades de memoria.




Note que en memoria se almacenan de manera inversa los bytes.

¿Cómo se administra la memoria RAM?

Sabemos que el trabajar con lenguaje ensamblador supone conocer los registros
del microprocesador, sin embargo, es importante conocer el funcionamiento de la
memoria RAM, ya que los programas que nosotros creamos en ensamblador,
finalmente se almacena en memoria para ser ejecutados, además de eso, los
datos que han de ser o que fueron procesados también se almacenan en memoria
(esto sería, por ejemplo la equivalencia a guardar un valor en una variable).

Cuando nosotros creamos un programa en ensamblador, el MS-DOS almacena el
mismo en RAM, sin embargo, reserva 3 secciones de RAM, estas secciones se
conocen como segmentos:


ITSG. Ingeniería en sistemas computacionales.
Lenguajes de interfaz.
Ing. Alberto Valdez Sandoval.
El segmento de código: Guarda las instrucciones que han de ejecutarse (o sea el
cuerpo del programa).

El segmento de datos: Contiene datos, constantes y áreas de trabajo definidos por
el programa.

El segmento de pila: La pila es otro segmento de la RAM que permite, en tiempo
de ejecución de nuestro programa, almacenar temporalmente direcciones de
memoria y datos.

La manera de acceder a los segmentos (a la RAM) es por medio del
direccionamiento, es decir, el direccionamiento es indicar al procesador a que
dirección de memoria deseamos accesar para lectura o escritura de la misma.

Esto se logra gracias a los registros del microprocesador, específicamente los
registros de segmento (16 bits c/u) guardan la dirección inicial de cada segmento.




ITSG. Ingeniería en sistemas computacionales.
Lenguajes de interfaz.
Ing. Alberto Valdez Sandoval.
Para visualizarlo de una manera más clara debemos darnos cuenta que las
direcciones de memoria son de 5 dígitos hexadecimales, es decir, 20 bits.

Sin embargo, el microprocesador puede almacenar sólo 16 bits. ¿Cómo se
resuelve este problema de Hardware? Resulta que cada inicio de segmento de
memora termina con 0, por ejemplo, en la figura de arriba, el segmento de código
comienza en la dirección 25A40, por lo tanto, se sobreentiende que el último
dígito es cero, por lo que no hay necesidad de almacenarlo, se explica a
continuación:

Pensemos en un programa que hemos ensamblado, entonces las instrucciones
como MOV, ADD, etc. Se almacenarán en el segmento de código, es decir cada
instrucción como MOV AX,[25A4] se almacena en una dirección (inclusive una
instrucción puede requerir más de una dirección de memoria), pero se almacena
en binario.

Entonces, siguiendo el ejemplo de la figura, cuando ensamblemos el programa,
las instrucciones a ejecutar por el microprocesador se guardarán a partir de la
dirección 25A40 (en este ejemplo), pero, ¿Cuándo se ejecuta el programa, cómo
sabe la computadora donde buscarlo en la memoria para su ejecución?

Resulta que el encargado de guardar el programa en los segmentos de memoria
es el DOS, y cuando deseamos ejecutarlo, el DOS almacena en los registros de
segmento las localidades iniciales de los segmentos, de la siguiente manera:




ITSG. Ingeniería en sistemas computacionales.
Lenguajes de interfaz.
Ing. Alberto Valdez Sandoval.
Después de transferir las direcciones de inicio de segmento a los registros de
segmento, el DOS transfiere el control al programa mismo y es entonces cuando
se empiezan a ejecutar todas las instrucciones del mismo, una vez que se termina
de ejecutar el programa, el DOS vuelve a tomar el control de los recursos del
sistema.

Pero…En el caso del segmento de código, si el DOS coloca sólo la dirección de
inicio ¿cómo es que se ejecutan las instrucciones siguientes?

Para eso se utilizan los registros de desplazamiento, por ejemplo:

Si la dirección de inicio del segmento de código es 25A4[0] y el registro IP
contiene 412H, entonces, la siguiente instrucción a ejecutar será:



ITSG. Ingeniería en sistemas computacionales.
Lenguajes de interfaz.
Ing. Alberto Valdez Sandoval.
25A40H
+ 412H
------------
25E52H


Los registros asociados con el desplazamiento son:

IP para CS

SP para SS




ITSG. Ingeniería en sistemas computacionales.
Lenguajes de interfaz.
Ing. Alberto Valdez Sandoval.

Más contenido relacionado

DOC
Previo4
PDF
Tema 8: Memorias RAM y CAM.
PPTX
PPTX
Capacidad de la unidad de procesamiento
PPTX
Power marissa
PPTX
Practica de tipos de memoria
PDF
LABORATORIOS DE: DISPOSITIVOS DE ALMACENAMIENTO Y DE ENTRADA/SALIDA. MEMORIAS...
PPTX
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)
Previo4
Tema 8: Memorias RAM y CAM.
Capacidad de la unidad de procesamiento
Power marissa
Practica de tipos de memoria
LABORATORIOS DE: DISPOSITIVOS DE ALMACENAMIENTO Y DE ENTRADA/SALIDA. MEMORIAS...
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)

La actualidad más candente (19)

PPTX
Capacidad de la unidad de procesamiento
PDF
Ejecuta dani&esti
PPTX
Sistema digitales 2.
PPTX
Gestion de memoria en unix y solaris
PPT
Componerntes internos
PPT
componentes internos
DOC
Registros de los Microprocesadores
PPTX
Memoria de la computadora
DOCX
Registro e intrucciones de microprocesador
DOCX
T22 ejecutainstruccion sergiosoto
PPTX
Unidad de procesamiento
PDF
Capacidad de la unidad de procesamiento por andres maica
PPTX
capacidad de unidad de procesamiento, universidad santiago mariño
PPTX
Registros de la cpu
PPTX
Memoria del computador
PPTX
Que es la cpu
PPTX
E altamirano tarea2
PDF
Previo3 - Dispositivos de E/S
PPTX
Capacidad de la unidad de procesamiento
Capacidad de la unidad de procesamiento
Ejecuta dani&esti
Sistema digitales 2.
Gestion de memoria en unix y solaris
Componerntes internos
componentes internos
Registros de los Microprocesadores
Memoria de la computadora
Registro e intrucciones de microprocesador
T22 ejecutainstruccion sergiosoto
Unidad de procesamiento
Capacidad de la unidad de procesamiento por andres maica
capacidad de unidad de procesamiento, universidad santiago mariño
Registros de la cpu
Memoria del computador
Que es la cpu
E altamirano tarea2
Previo3 - Dispositivos de E/S
Capacidad de la unidad de procesamiento
Publicidad

Destacado (20)

DOCX
Tabla comparativa teorías de cv
PPT
CD DESPEDIDA DE SEXTO/ CD COMIAT DE SISÈ
PPTX
Greece and European Union
PPT
Mesa participacion social y comunitaria 2010
PPTX
Presentación1
PPTX
Lluvia de ideas (2)
PDF
Diseno 12
DOCX
Danielyapocalipsis 090601151959-phpapp01
PPT
Power point educacion_inclusiva
PPTX
Panamericana 27 olga
PPT
Housekeeping in-jeddah-saudi-arabia
PPTX
Hviezdoslav
DOCX
Huauchinango
DOCX
Plano seriado
PPTX
Tecnologia.pptx
DOCX
TRIBUTARIO DERECHO FINANCIERO
PDF
13A Erika Martinez
DOCX
Clorato de potasio
PDF
Political Science Newsletter - Fall 2016
PDF
June 2016 - Addressing the water and sanitation déficit
Tabla comparativa teorías de cv
CD DESPEDIDA DE SEXTO/ CD COMIAT DE SISÈ
Greece and European Union
Mesa participacion social y comunitaria 2010
Presentación1
Lluvia de ideas (2)
Diseno 12
Danielyapocalipsis 090601151959-phpapp01
Power point educacion_inclusiva
Panamericana 27 olga
Housekeeping in-jeddah-saudi-arabia
Hviezdoslav
Huauchinango
Plano seriado
Tecnologia.pptx
TRIBUTARIO DERECHO FINANCIERO
13A Erika Martinez
Clorato de potasio
Political Science Newsletter - Fall 2016
June 2016 - Addressing the water and sanitation déficit
Publicidad

Similar a Clase 3.ram (segmentos), direccionamiento miento. (20)

PDF
Tutorial ensamblador
PDF
Lenguaje ensamblador basico
PPT
PPTX
Emsamblador
PDF
Clase10 2-lenguaje ensamblador
PDF
Lenguaje C para Administradores de Red / Script III - Memoria
PDF
5154 Tema3 Jose Rojas
PDF
Unidad I.pdf
PDF
Evolución de la programación
PDF
COMPONENTES BÁSICOS DE UN SISTEMA MS-DOS
DOCX
Diagrama de bloque procesador intel
PPTX
Data segment
PDF
Arquitectura de una computadora
PDF
PDF
Investigacion Registros Arquitectura de computo
PPTX
El Procesador o CPU 2
DOCX
INTRODUCCION A LOS SISTEMAS OPERATIVOS
PDF
DOCX
Assambler
DOC
Estructura del computador kayori
Tutorial ensamblador
Lenguaje ensamblador basico
Emsamblador
Clase10 2-lenguaje ensamblador
Lenguaje C para Administradores de Red / Script III - Memoria
5154 Tema3 Jose Rojas
Unidad I.pdf
Evolución de la programación
COMPONENTES BÁSICOS DE UN SISTEMA MS-DOS
Diagrama de bloque procesador intel
Data segment
Arquitectura de una computadora
Investigacion Registros Arquitectura de computo
El Procesador o CPU 2
INTRODUCCION A LOS SISTEMAS OPERATIVOS
Assambler
Estructura del computador kayori

Clase 3.ram (segmentos), direccionamiento miento.

  • 1. LENGUAJE ENSAMBLADOR: DIRECCIONAMIENTO DE MEMORIA RAM. La memoria RAM está seccionada en bytes. Por lo tanto, cada sección de la RAM, o sea, cada byte (8 bits) puede almacenar un total de 28=256 distintos valores. Desde el dato 00000000 hasta 11111111 o lo que es lo mismo: desde 00H hasta FFH. El microprocesador 8086 es un procesador de 16 bits, lo que significa que los registros del procesador son de una capacidad de procesamiento de 16 bits. Esto es, si deseamos almacenar en RAM el valor de un registro como el AX, será necesario utilizar 2 bytes o lo que es lo mismo, 2 localidades de memoria. Note que en memoria se almacenan de manera inversa los bytes. ¿Cómo se administra la memoria RAM? Sabemos que el trabajar con lenguaje ensamblador supone conocer los registros del microprocesador, sin embargo, es importante conocer el funcionamiento de la memoria RAM, ya que los programas que nosotros creamos en ensamblador, finalmente se almacena en memoria para ser ejecutados, además de eso, los datos que han de ser o que fueron procesados también se almacenan en memoria (esto sería, por ejemplo la equivalencia a guardar un valor en una variable). Cuando nosotros creamos un programa en ensamblador, el MS-DOS almacena el mismo en RAM, sin embargo, reserva 3 secciones de RAM, estas secciones se conocen como segmentos: ITSG. Ingeniería en sistemas computacionales. Lenguajes de interfaz. Ing. Alberto Valdez Sandoval.
  • 2. El segmento de código: Guarda las instrucciones que han de ejecutarse (o sea el cuerpo del programa). El segmento de datos: Contiene datos, constantes y áreas de trabajo definidos por el programa. El segmento de pila: La pila es otro segmento de la RAM que permite, en tiempo de ejecución de nuestro programa, almacenar temporalmente direcciones de memoria y datos. La manera de acceder a los segmentos (a la RAM) es por medio del direccionamiento, es decir, el direccionamiento es indicar al procesador a que dirección de memoria deseamos accesar para lectura o escritura de la misma. Esto se logra gracias a los registros del microprocesador, específicamente los registros de segmento (16 bits c/u) guardan la dirección inicial de cada segmento. ITSG. Ingeniería en sistemas computacionales. Lenguajes de interfaz. Ing. Alberto Valdez Sandoval.
  • 3. Para visualizarlo de una manera más clara debemos darnos cuenta que las direcciones de memoria son de 5 dígitos hexadecimales, es decir, 20 bits. Sin embargo, el microprocesador puede almacenar sólo 16 bits. ¿Cómo se resuelve este problema de Hardware? Resulta que cada inicio de segmento de memora termina con 0, por ejemplo, en la figura de arriba, el segmento de código comienza en la dirección 25A40, por lo tanto, se sobreentiende que el último dígito es cero, por lo que no hay necesidad de almacenarlo, se explica a continuación: Pensemos en un programa que hemos ensamblado, entonces las instrucciones como MOV, ADD, etc. Se almacenarán en el segmento de código, es decir cada instrucción como MOV AX,[25A4] se almacena en una dirección (inclusive una instrucción puede requerir más de una dirección de memoria), pero se almacena en binario. Entonces, siguiendo el ejemplo de la figura, cuando ensamblemos el programa, las instrucciones a ejecutar por el microprocesador se guardarán a partir de la dirección 25A40 (en este ejemplo), pero, ¿Cuándo se ejecuta el programa, cómo sabe la computadora donde buscarlo en la memoria para su ejecución? Resulta que el encargado de guardar el programa en los segmentos de memoria es el DOS, y cuando deseamos ejecutarlo, el DOS almacena en los registros de segmento las localidades iniciales de los segmentos, de la siguiente manera: ITSG. Ingeniería en sistemas computacionales. Lenguajes de interfaz. Ing. Alberto Valdez Sandoval.
  • 4. Después de transferir las direcciones de inicio de segmento a los registros de segmento, el DOS transfiere el control al programa mismo y es entonces cuando se empiezan a ejecutar todas las instrucciones del mismo, una vez que se termina de ejecutar el programa, el DOS vuelve a tomar el control de los recursos del sistema. Pero…En el caso del segmento de código, si el DOS coloca sólo la dirección de inicio ¿cómo es que se ejecutan las instrucciones siguientes? Para eso se utilizan los registros de desplazamiento, por ejemplo: Si la dirección de inicio del segmento de código es 25A4[0] y el registro IP contiene 412H, entonces, la siguiente instrucción a ejecutar será: ITSG. Ingeniería en sistemas computacionales. Lenguajes de interfaz. Ing. Alberto Valdez Sandoval.
  • 5. 25A40H + 412H ------------ 25E52H Los registros asociados con el desplazamiento son: IP para CS SP para SS ITSG. Ingeniería en sistemas computacionales. Lenguajes de interfaz. Ing. Alberto Valdez Sandoval.