Está en la página 1de 4

TEMA: DIRECCIONAMIENTO DIRECTO

Marco teórico

DIRECCIONAMIENTO DIRECTO

Se les llama modos de direccionamiento a las distintas formas de combinar los operandos
según el acceso que se hace a memoria.
Dicho de otra manera, un modo de direccionamiento será una forma de parámetro para
las instrucciones.
Una instrucción que lleve un parámetro, por lo tanto, usará un modo de direccionamiento,
que dependerá de cómo direccionará (accesará) al parámetro; una instrucción de dos
parámetros combinará dos modos de direccionamiento.

En el direccionamiento directo uno de los operandos involucra una localidad específica


de memoria
El valor constante se tiene que buscar en memoria, en la localidad especificada.

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.
La dirección del operando viene incluida en la instrucción, aquí el procesador calcula la
dirección real ([DS]+Dir)

Si hace referencia a un registro de la máquina, el dato estará almacenado en este registro


y hablaremos de direccionamiento directo a registro; si hace referencia a una posición de
memoria, el dato estará almacenado en esta dirección de memoria (dirección efectiva) y
hablaremos de direccionamiento directo a memoria. Estos modos de direccionamiento
tienen una forma muy simple y no hay que hacer cálculos para obtener la dirección
efectiva donde está el dato. El tamaño del operando, en el caso del direccionamiento
directo a registro, dependerá del número de registros que tenga la máquina; en el
direccionamiento directo a memoria, dependerá del tamaño de la memoria.

Ejemplo 1:

MOV AH, [0000]


MOV AH, Variable

Ejemplo 2:

MOV AX, DATO


ADD AX, [100]
Estas dos instrucciones serían equivalentes, si Variable está, por ejemplo, en la localidad
0 de memoria. En la forma primitiva del lenguaje de máquina, como el primer ejemplo,
se tiene que indicar “mover a AH el contenido (indicado por los corchetes), de la localidad
0 de los datos (lo de los datos es implícito).

El lenguaje Ensamblador, sin embargo, nos permite la abstracción del uso de variables,
pero como una variable tiene una localidad determinada en memoria, para el procesador
funciona igual. La única diferencia consiste en que el programador no tiene que
preocuparse por la dirección, ese manejo lo hace automáticamente el Ensamblador.

DIRECCIONAMIENTO DIRECTO DE REGISTRO:


En este modo de direccionamiento, el operando está contenido en un registro de propósito
general (Ri), que se puede utilizar como operando fuente o destino (excepto si se trata del
registro R0)
Ejemplos:

El operando almacenado en el registro es un valor de 16 bits expresado en C’2. El rango


de valores que puede este operando es el siguiente:
Operando en registro (16 bits – C’2): Rango [-32768, +32767]
Características:
 Los operandos o datos se encuentran en registros.
 No se necesita calcular la Dir. Absoluta.
 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.
Realizar un ejemplo en el que se muestre el direccionamiento directo en lenguaje
ensamblador.

Donde:
RRF f,d
Rota el contenido del registro f una posición a la derecha
El bit se rota a través de la bandera “carry” . Cada vez que se ejecuta la
instrucción los bits se rotan una posición a la derecha, el bit más significativo es
ocupado por el contenido de la bandera carry y el bit menos significativo pasa a
ocupar el lugar de la bandera carry.
El resultado de la operación se coloca en el destino d
SWAPF f,d
Intercambia el nible más significativo y el nible menos significativo.
El resultado de la operación se coloca en el destino d.

NOP
Esta instrucción no hace nada durante un ciclo. Se puede ocupar para realizar retardos.
Analisis de los resultados:
REGISTROS GUARDAR CARRY DIRECCION CERO
REGISTROS
MOVLW C6 W=C6 C=0 DC=0 Z=0
MOVLF 25 [25]=C6 C=0 DC=0 Z=0
MOVLW 4E W=4E C=0 DC=0 Z=0
ANDWF 25,0 W=46 C=0 DC=0 Z=0
SUBWF 25,1 [25]=80 C=1 DC=1 Z=0
MOVWF 30 [30]=46 C=1 DC=1 Z=0
RRF 30,0 W=A3 C=0 DC=1 Z=0
DECF 30,1 [30]=45 C=0 DC=1 Z=0
COMF 25,0 W=7F C=0 DC=1 Z=0
SWAPF 30,0 W=54 C=0 DC=1 Z=0

Conclusiones:
……………………………………………………………………………………………
……………………………………………………………………………………………
…………………………………………………………………………………………….
Recomendaciones:
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
Bibliografía:

Arquitectura de Computadoras
https://silvamondragon.wordpress.com/2010/11/29/4-2-3-modos-de-direccionamiento/

Infor.uva.es
https://www.infor.uva.es/~bastida/OC/modos.pdf

Fing.edu.uy
https://www.fing.edu.uy/inco/cursos/firmware/laboratorio/cartillaPIC16F877.pdf

También podría gustarte