Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ModosDireccionamiento ASSEMBLER 2019
ModosDireccionamiento ASSEMBLER 2019
Índice
BIBLIOGRAFIA .................................................................................................................... 5
U.T.N. FRC – Cátedra ARQUITECTURA DE COMPUTADORAS
MODOS DE DIRECCIONAMIENTO
Los Modos de Direccionamiento son las formas de especificar la ubicación de los datos y
modos para acceder a ellos. Los datos que maneja una instrucción maquina pueden estar
ubicados en la propia instrucción, en un registro de la CPU o en la memoria del computador.
La palabra Dirección se utiliza como localización del operando y NO como ubicación en
memoria.
Ejemplo: INT 3
En esta instrucción cuyo código de operación es CC como es una acción para terminar la
ejecución de un programa o grupo de acciones no hay dato u operando, por lo que el mismo
código de operación tiene todo lo necesario para ejecutarla.
Las instrucciones que ordenan pasar una constante a un registro están en modo de
direccionamiento inmediato [1], dicha constante es el dato A9E5.
O sea que si miramos con el comando D 0100 las celdas de memoria desde la dirección
0100 después de cargar la operación, podríamos verlas así:
06B3:0100 B8 E5 A9 00 00 00 00 00-00 00 00 00 00 00 00 00
06B3:0110 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
06B3:0120 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
Este Modo no necesita transformación alguna para otorgar la dirección necesaria es decir
que la dirección del dato u operando está en las celdas de memoria siguientes al código de
operación de la instrucción.
Ocupa 4 bytes
Si una instrucción tiene un número entre corchetes se dice que está en modo de
direccionamiento directo [1], dicho número es la dirección A5F2.
O sea que si miramos con el comando D 0100 las celdas de memoria desde la dirección
0100 después de cargar la operación, podríamos verlas así:
06B3:0100 8B 1E F2 A5 00 00 00 00-00 00 00 00 00 00 00 00
06B3:0110 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
U.T.N. FRC – Cátedra ARQUITECTURA DE COMPUTADORAS
En esta instrucción el código de operación es 89D8 y está en las celdas de memoria cuya
dirección es 06B3:0100 y 06B3:0101. El dato u operando, que es el valor que debe ser
asignado al registro AX, está contenido en el registro BX.
En esta instrucción el código de operación es 8B07 y está en las celdas de memoria cuya
dirección es 06B3:0100 y 06B3:0101. El dato u operando que es el valor a ser asignado al
registro AX, está en la dirección contenida en el registro BX, nótese que también para
indicar que el registro BX contiene la dirección del dato y no el dato el registro BX se pone
entre corchetes.
Una instrucción de este tipo corresponde al modo de direccionamiento indirecto por registro.
Esto es la dirección de una celda de memoria se da indirectamente a través de un registro,
como SI, DI, o BX. Las instrucciones en modo de direccionamiento indirecto por registro
permiten solucionar el problema de recorrer uno tras otro los datos contenidos en posiciones
sucesivas de memoria, como es el caso de una lista o vector. [1]
U.T.N. FRC – Cátedra ARQUITECTURA DE COMPUTADORAS
La instrucción JNZ como cualquier otra de salto condicional “short” (corto) está en modo de
direccionamiento relativo. El término “relativo” implica que la dirección de la instrucción a
la que se salta (si se cumple la condición) se calcula sumando un número a la dirección de
la instrucción que sigue a la instrucción de salto. O sea que la dirección hacia donde hay
que saltar está en relación con esta última dirección, la cual está apuntada por el IP, por ser
la próxima instrucción a ejecutar luego de la de salto.
El número a sumar a la dirección de la instrucción que sigue a la instrucción de salto, forma
parte de un byte de esta última. En un salto hacia atrás, como en el loop dicho número es
negativo, siendo positivo si el salto es hacia adelante. [1]
En esta instrucción el código de operación es 75F7 y está en las celdas de memoria cuya
dirección es 06B3:0110 y 06B3:0111. El dato u operando es la dirección a la que debe
saltar y está dada a continuación de la instrucción JNZ por el valor 0109.
O sea que si miramos con el comando D 0100 las celdas de memoria desde la dirección
0100 después de cargar el programa, veríamos esto:
06B3:0100 B8 00 00 BB 00 00 BE 20-01 03 04 43 46 83 FB 05
06B3:0110 75 F7 CC 00 00 00 00 00-00 00 00 00 00 00 00 00
BIBLIOGRAFIA
[1] Assembler desde cero e interrupciones. Mario Carlos Ginzburg. Biblioteca Técnica
Superior. 2a edición mejorada.