Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modos de Direccionamiento
Modos de Direccionamiento
Modos de direccionamiento
Los llamados modos de direccionamiento son las diferentes maneras de especificar en informática un operando dentro
de una instrucción (lenguaje ensamblador). Cómo se especifican e interpretan las direcciones de memoria según las
instrucciones.
Direccionamiento Directo
Direccionamiento directo que solo se aplica a una MOV entre una localidad de memoria y AL ó AX. Son instrucciones
muy comunes y tienen 3 bytes de longitud
DIRECCIONAMIENTO INDEXADO
En este modo de direccionamiento, la dirección del operando también se calcula sumando un registro de la cpu al
campo de operando, este registro especifico para este uso llamado registro índice. En los ordenadores con organización
de registros generales, el registro índice puede ser cualquiera de los registros de la CPU. En los ordenadores en que el
contador de programa es considerado como un registro de uso general (PDP-11 Y VAX) el modo relativo un caso
particular del direccionamiento indexado. A la cantidad que hay que sumar al registro índice para conseguir la dirección
del operando también se le llama desplazamiento u offset.
Este modo de direccionamiento es especialmente útil para el direccionamiento de vectores y Matrices en bucles ya que,
si se quieren direccionar elementos consecutivos del vector o matriz,
En los dos apartados siguientes. En algunos ordenadores existen variantes del direccionamiento
Indexado en que se obtiene la dirección del operando sumando el contenido de varios registros con el desplazamiento
respecto a un registro y el elemento
Registro base
Un registro es un conjunto de campos que contienen los datos que pertenecen a una misma repetición de entidad. Se le
asigna automáticamente un número consecutivo (número de registro) que en ocasiones es usado como índice aunque lo
normal y práctico es asignarle a cada registro un campo clave para su búsqueda.
La estructura implícita de un registro y el significado de los valores de sus campos exige que dicho registro sea entendido
como una sucesión de datos, uno en cada columna de la tabla. La fila se interpreta entonces como una variable
relacional compuesta por un conjunto de tuplas, cada una de las cuales consta de dos ítems: el nombre de la columna
relevante y el valor que esta fila provee para dicha columna.
Direccionamiento implícito
En este modo, llamado también inherente, el operando se especifica en la misma definición de la instrucción. El modo
implícito se usa para hacer referencia a operandos de dos tipos:
- Operandos en la pila: En el caso de que la operación se realice siempre sobre el dato situado en la cima de pila.
El primer caso es típico de las organizaciones de un solo acumulador. Generalmente en un ordenador de este tipo todas
las instrucciones que actúan sobre el acumulador utilizan direccionamiento implícito.
Sierra Márquez Oscar David 3
Universidad Mexiquense del Bicentenario
En este modo es el operando el que figura en la instrucción no su dirección. En otras palabras el campo de operando
contiene él mismo, sin transformación alguna, la información sobre la que hay que operar. Este modo es útil para
inicializar registros o palabras de memoria con un valor constante.
a)La instrucción NO contiene la dirección del operando >> debe ser calculada.
-La instr contiene un DESPLAZAMIENTO q hay q añadir a la dirección marcada por un puntero para obtener la dirección
final del operando>> RETRASO ADICIONAL.
b) Permite acceder a un conjunto de direcciones de memoria a partir de una considerada como referencia.>> en el CD
emplea un nº de bits pequeño
c) Varios tipos
a) puntero : SP (stack pointer); apunta a la dirección de mem donde se encuentra la cima de la pila.
-VENTAJA : flexibilidad.
-DESVENTAJA: complejidad
DIRECCIONAMIENTO INDIRECTO
Sierra Márquez Oscar David 4
Universidad Mexiquense del Bicentenario
a) El CD referencia la dirección de una palabra, q a su vez contiene la dirección completa del operando.
-En el CD, hace referencia a un registro q contiene la dirección completa del operando.
Un programa en lenguaje ensamblador estará formado por una secuencia de sentencias. Cada sentencia ocupa una sola
línea y tiene la siguiente estructura:
Los cuatro campos de una sentencia son opcionales, si no aparece ninguno de ellos (una línea en blanco) tendríamos una
sentencia vacía.
* Instrucciones:
Estas sentencias representan órdenes al procesador y tras el proceso de compilación generan código ejecutable.
* Directivas:
Estas sentencias dirigen el proceso de compilación o construcción del programa ejecutable. No generan código
ejecutable. Normalmente se utilizan para aumentar la legibilidad del código fuente.
El fichero creado con todas las sentencias que constituyen un programa se denomina fichero fuente. Este tipo de fichero
tiene formato ASCII. Se recomienda que el fichero de código fuente tenga por extensión .ens.
El fichero fuente se compila utilizando el programa ensamblador. El programa ensamblador generará un nuevo fichero,
denominado fichero ejecutable, de igual nombre y de extensión .eje.
Este fichero tiene formato ASCII y contiene el código máquina de las instrucciones que componen el programa, así como
cierta información adicional para realizar la carga del programa en el simulador del computador elemental.
Los ficheros de código fuente escritos en lenguaje ensamblador se organizan en líneas. Cada una de las líneas del fichero
puede contener una directiva, una instrucción o ambas cosas a la vez en los casos en que sea posible. El carácter
separador de líneas es el retorno de carro, por lo que una instrucción no podrá ocupar más de una línea en el fichero
fuente.
Sierra Márquez Oscar David 6
Universidad Mexiquense del Bicentenario
Todos los ficheros fuente tienen que adecuarse a una estructura fija dividida en secciones.
De todas las secciones posibles que pueden formar parte de una programa en lenguaje ensamblador, sólo será
obligatoria la sección de definición del código del programa. Todas las demás secciones serán opcionales pudiendo estar
presentes o no. Si aparece alguna de las secciones del esquema, tendrá que estar colocada en el orden indicado.
Sierra Márquez Oscar David 7
Universidad Mexiquense del Bicentenario
Hemos visto la estructura general. Ahora veremos la posición de los elementos del código por 4 columnas:
Columna 2: Operación. En esta columna se situarán las instrucciones. El campo del código de operación es el
único que nunca puede estar vacío; éste siempre contiene una instrucción o una directiva del ensamblador.
Columna 3: Operandos El campo de operandos o de dirección puede contener una dirección o un dato, o
puede estar en blanco. Normanmente contendrá registros o literales con los que se operará (f, l ok , b y w).
Columna 4: Comentario. El campo del comentario o de etiquetas es opcional. Aquí se situará cualquier
comentario personalizado que deseemos. Estos son útiles para saber qué hace un programa sin tener que descifrar
el código entero. El compilador (ensamblador) ignorará todo texto más allá del carácter punto y coma ";".
Los comentarios generalmente se sitúan en la cuarta columna para describir la acción de una línea de código, pero
pueden situarse en cualquier parte de programa para describir cualquier otro evento, siempre que estén después del
carácter ";" (semicolon en inglés).
Normalmente las columnas son separadas por una tabulación. El espacio mínimo entre dos columnas es de un
carácter, que puede ser un espacio en vez de una tabulación.
Los campos van separados sólo con espacios y/o tabulaciones. No agregue nunca otros caracteres (comas,
puntos, etc.)
No utilice espacios extra, particularmente después de comas que separan operandos.( Ej: movlw 5, w )