Вы находитесь на странице: 1из 10

REPÚBLICA BOLIVARIANA DE VENEZUELA.

REPÚBLICA BOLIVARIANA DE VENEZUELA. LA UNIVERSIDAD DEL ZULIA. FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA ELÉCTRICA ASIGNATURA:

LA UNIVERSIDAD DEL ZULIA. FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA ELÉCTRICA ASIGNATURA: ELECTRÓNICA DIGITAL

II

REPÚBLICA BOLIVARIANA DE VENEZUELA. LA UNIVERSIDAD DEL ZULIA. FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA ELÉCTRICA ASIGNATURA:

DIRECCIONAMIENTO DE MEMORIA

Elaborado por:

Javier Hernández C.I. 20.578.572 Felipe Mejía C.I. 23.446.766 Jairo Morales C.I. 20.582.526

Maracaibo, 6 de diciembre del 2014

INDICE

  • 1. Lenguaje ensamblador

  • 2. Direccionamiento de memoria

  • 3. Tipos de direccionamiento de memoria

  • 4. Comparación entre los modos de direccionamiento

  • 5. Ejemplos

1.

Lenguaje ensamblador

El lenguaje ensamblador corresponde a un lenguaje de programación de bajo nivel que se comunica directamente a los microprocesadores de la computadora implementando una representación del lenguaje hombre para luego traducirlo al lenguaje máquina que es realmente lo que entienden los microprocesadores. Dependiendo del hardware que impongan los fabricantes el ensamblador tendrá una arquitectura específica de las instrucciones, registros, espacios de memoria y otras características del lenguaje. La característica anterior es lo que diferencia el ensamblador con respectos a los lenguajes de alto nivel, cuyas estructuras son portátiles se adaptan a cualquier hardware.

Algunas otras características del lenguaje ensamblador son:

El código escrito en lenguaje ensamblador es difícil de entender ya que su estructura

se acerca más bien al lenguaje máquina, es decir, lenguaje de bajo nivel. El lenguaje ensamblador es difícilmente portable, es decir, un código escrito para

un microprocesador, suele necesitar ser modificado, muchas veces en su totalidad para poder ser usado en otra máquina Los programas hechos en lenguaje ensamblador, al ser programado directamente

sobre hardware, son generalmente más rápidos y consumen menos recursos del sistema Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas

por También se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir que se interrumpa durante su ejecución.

2.

Direccionamiento de memoria

El direccionamiento de memoria implica la forma de especificar el conjunto de combinaciones de instrucciones para construir la dirección de la memoria efectiva. El conjunto de instrucciones a utilizar dependerá de los tipos de datos, bien sean generales, de pila o programas.

Otra definición también sería; Un modo de direccionamiento especifica la forma de calcular la dirección de memoria efectiva de un operando mediante el uso de la información contenida en registros y / o constantes, contenida dentro de una instrucción de la pc en otra parte.

Cuando se desea direccionar un dato, el microprocesador tiene un conjunto de reglas que aplicar, estas definen la combinación de registro de segmento y desplazamiento. El

microprocesador referencia el tipo de dato o de pila a un segmento que se emplea siempre con un apuntador de instrucciones para direccionar la siguiente instrucción a ejecutar en un programa, a este proceso se le conoce como direccionamiento implícito. En la siguiente tabla se muestran los tipos de datos y de pilas con sus respectivos segmentos implícitos

microprocesador referencia el tipo de dato o de pila a un segmento que se emplea siempre

La instrucción por excelencia para manejar la memoria de datos es la instrucción “MOV DESTINO, FUENTE”, se clasifica como sencilla y flexible. En la siguiente figura se muestra un ejemplo con la instrucción MOV:

microprocesador referencia el tipo de dato o de pila a un segmento que se emplea siempre

El sentido del flujo puede parecer confuso ya que normalmente el flujo siempre se encuentra de derecha a izquierda, mientras que en este caso es de derecha a izquierda, situándose a la derecha la fuente y en el otro extremo el destino. En el ejemplo se tiene la sentencia MOV AX,BX , y esta transfiere el contenido de palabras desde la fuente BX al registro destino AX.

Otro punto importante de esta instrucción es que siempre copia un dato de la fuente al destino. Los operados que se pueden utilizar en esta instrucción tanto para la fuente como para el destino son los registros, memoria, inmediato o entrada/salida.

Se

debe

de tomar

en

cuenta las siguientes

restricciones al

momento

de

emplea la

instrucción MOV:

Los dos operandos usados deben ser del mismo tamaño No se admiten transferencias entre memoria, de manera que los dos operandos no pueden ser de memoria en una misma instrucción MOV No se pueden realizar copias de datos entre registros segmentos en una misma instrucción. El registro segmento de código CS no puede ser operando destino de ninguna instrucción de transferencia de datos. Este registro solamente puede ser cambiado por las instrucciones especiales para direccionar código Los datos inmediatos nunca pueden ser operadores destino Si solamente uno de los operandos tiene tamaño definido este será el que establezca el tamaño del dato que será copiado Cuando ninguno de los dos operandos provea información sobre el tamaño del dato copiado, será necesario utilizar prefijos especiales de ensamblador que especifique el tamaño en alguno de los dos operandos. Para transferir bytes se usa byte ptr, para palabras word ptr, para dobles palabras dword prt. Estas directivas de ensamblador se utilizan solamente con operandos de memoria.

  • 3. Tipos de direccionamiento de memoria

Direccionamiento por registro

Transfiere un byte o palabra desde el registro fuente o localidad en memoria, hasta el registro o localidad destino en la memoria ejemplo MOV CX, DX copia el contenido de tamaño de palabra en el registro DX y lo pasa al registro CX

 Direccionamiento Inmediato En la instrucción está incluido directamente el operando. En este modo el operando

Direccionamiento Inmediato

En la instrucción está incluido directamente el operando. En este modo el operando es especificado en la instrucción misma. En otras palabras, una instrucción de modo inmediato tiene un campo de operando en vez de un campo de dirección. El campo del operando contiene el operando actual que se debe utilizaren conjunto con la operación especificada en la instrucción. Las instrucciones de modo inmediato son útiles para inicializar los registros en un valor constante. Cuando el campo de dirección especifica un registro del procesador, la instrucción se dice que está en el modo de registro.

 Direccionamiento Inmediato En la instrucción está incluido directamente el operando. En este modo el operando

Direccionamiento Directo

El campo de operando en la instrucción contiene la dirección en memoria donde se encuentra el operando. En este modo la dirección efectiva es igual a la parte de dirección de la instrucción. El operando reside en la memoria y su dirección es dada directamente por el campo de dirección de la instrucción. En una instrucción de tipo ramificación el campo de dirección especifica la dirección de la rama actual .Con este tipo de direccionamiento, la dirección efectiva es contenida en la misma instrucción, tal como los valores de datos inmediatos que son contenidos en la instrucción. Un procesador de 16 bits suma la dirección efectiva al contenido del segmento de datos previamente desplazado en 4bits para producir la dirección física del operando.

 Direccionamiento Indirecto Mediante Registros El campo de operando de la instrucción contiene un identificador de

Direccionamiento Indirecto Mediante Registros

El campo de operando de la instrucción contiene un identificador de registro en el que se encuentra la dirección efectiva del operando. En este modo el campo de la dirección de la instrucción da la dirección en donde la dirección efectiva se almacena en la memoria. El control localiza la instrucción de la memoria y utiliza su parte de dirección para tener acceso la memoria de nuevo para leer una dirección efectiva. Unos pocos modos de direccionamiento requieren que el campo de dirección de la instrucción sea sumado al control de un registro especificado en el procesador. La dirección efectiva en este modo se obtiene del siguiente cálculo: Dir. Efectiva = Dir. De la parte de la instrucción + Contenido del registro del procesador

 Direccionamiento Indirecto Mediante Registros El campo de operando de la instrucción contiene un identificador de

Direccionamiento Indirecto Mediante Registros

El campo de operando de la instrucción contiene un identificador de registro en el que se encuentra la dirección efectiva del operando. En este modo el campo de la dirección de la instrucción da la dirección en donde la dirección efectiva se almacena en la memoria. El control localiza la instrucción de la memoria y utiliza su parte de dirección para accesar la memoria de nuevo para leer una dirección efectiva. Unos pocos modos de direccionamiento requieren que el campo de dirección de la instrucción sea sumado al control de un registro especificado en el procesador. La dirección efectiva en este modo se obtiene del siguiente

cálculo: Dir. Efectiva = Dir. De la parte de la instrucción + Contenido del registro del procesador

cálculo: Dir. Efectiva = Dir. De la parte de la instrucción + Contenido del registro del

Direccionamiento base más índice

El direccionamiento base más índice es parecido al indirecto, ya que direcciona de forma indirecta a los datos de la memoria. Este direccionamiento base más índice transfiere un byte o palabra entre un registro y la localidad en la memoria direccionada por un registro base más un registro índice, más un desplazamiento.

A menudo el registro base contiene la localidad inicial de un arreglo en la memoria, mientras que el registro índice contiene la posición relativa entre el inicio del arreglo y el dato que se desea transferir, tal cual se muestra en la siguiente figura:

cálculo: Dir. Efectiva = Dir. De la parte de la instrucción + Contenido del registro del

Este tipo permite códigos reentrantes y acceder de forma fácil y rápida a posiciones cercanas de memoria. Este modo de direccionamiento es muy usado por los ensambladores cuando se llaman a las funciones (para acceder a los parámetros almacenados en la pila).

Direccionamiento relativo a registro

Transfiere un byte o una palabra entre un registro y una localidad en la memoria direccionada por un registro índice o un registro base, más un desplazamiento. El proceso de este direccionamiento comienza por especificar la dirección del elemento a través del registro base o índice, y el desplazamiento da la dirección del inicio del arreglo.

Direccionamiento relativo a base más índice

En este caso se transfiere un Byte o palabra entre un registro y una localidad de memoria direccionada empleando un registro índice, mas un registro base más un desplazamiento. El direccionamiento relativo a base más índice toma el concepto del base más índice añadiendo un desplazamiento, en la actualidad este direccionamiento es el menos empleado debido a lo complejo que sería emplearse con frecuencia en un programa.

Direccionamiento de índice escalado

En este modo, la dirección del operando se encuentra en un registro y este es incrementado después de acceder al operando, el tamaño del mismo

Este método es útil para manejar vectores y matrices. También se puede utilizar para extraer datos de pilas ya que, si el registro sobre el que se aplica este modo es el apuntador de pila, después de la operación el apuntador señalara al siguiente elemento de la pila.

4.

Comparación entre los modos de direccionamiento

Modo

Ventajas

Desventajas

Registro

No accede a memoria

Número limitado de registros

Inmediato

No accede a memoria

Operando de magnitud limitada

Directo

Sencillez

Espacios de direcciones limitado

Indirecto por

Espacio de direcciones grande

Acceso a registro y memoria

registro

Base más índice

Empleado para accesar a estructuras complejas de datos

La dirección efectiva del operando debe calcularse

Relativo a registro

Facilita la localización de

No se puede saltar a distancias mayores que las

programas en memoria

permitidas por la longitud del campo

Relativo a base más índice

Útil para direccionar un arreglo bidimensional

En extremo complejo para emplearse con frecuencia en un programa

Escalado

Manejo más flexible de arreglos con elementos de diversos tamaños

Exclusivo para los microprocesadores 80386 hasta Pentium 4, factor de escala afecta a la

 

dirección efectiva

5.

Ejemplos