You are on page 1of 20

MODOS DE DIRECCIONAMIENTO

Microcontroladores
MsC. Ing. Luz Adanaqué
25.01.2016
MODOS DE
DIRECCIONAMIENTO
Son las formas en las que se obtienen los datos que serán utilizados en
la instrucción.
Existen 4 modos de direccionamiento:
Inherente, Literal, Directo e Indirecto.
1. En el direccionamiento inherente la instrucción no tiene operando,
o éste viene especificado en el propio código de operación.
Ejm:
RESET (los operandos son todos los registros) y
NOP (No realiza operación, no hay operando).

1. En el direccionamiento literal el operando se indica en la


instrucción en forma explícita.
Ejm:
GOTO 0x100:Salto incondicional a la dirección 100h
MOVLW .23: Cargar en el PC el valor 23.
DIRECCIONAMIENTO DIRECTO
La dirección de la memoria de datos donde se encuentra el operando
viene explícitamente indicada en la instrucción.

Operando de tipo byte:


MOVOFF 0x011, 0x120
Instrucción Origen, Destino

MOVWF 0x06, 0
Banco de acceso rápido

MOVWF 0xB4
BSR y el byte indicado en la
instrucción
DIRECCIONAMIENTO DIRECTO
Operando de tipo bit:
En la instrucción se especifica el registro en el que se encuentra el bit y
luego la posición del bit dentro del registro.

1. BSF 0x31, 6

Para facilitar las tareas de programación, en el lenguaje ensamblador los


valores numéricos que corresponden a los literales o a las direcciones de
memoria se representan mediante etiquetas:
VAR1 EQU 0x010
CTE EQU .24
MOVLW CTE1
MOVWF VAR1,0
DIRECCIONAMIENTO INDIRECTO
Usa dos registros:
- FRSx, que apunta la dirección de memoria de datos a la cual se
quiere acceder para un proceso de R/W.
- INDFx, que apunta al contenido direccionado por los FSR.

Si FSR0 = 0x203, y se escribe en el INDF0.


Entonces se carga el valor escrito al INDF0
DIRECCIONAMIENTO INDIRECTO
Indirectamente se apunta a la dirección de
memoria y a su contenido.

Movlw .20 ;Carga del decimal .20 al W


Movwf 0x20 ,0 ;Copia el contenidod e W a 0x20
Lfsr FSR0, 0x20 ;Carga del FSR0 con la dirección 0x20
DIRECCIONAMIENTO INDIRECTO
Además de los INDFx existen otros registros virtuales que permiten
acceder el dato apuntado por los FSRx, que permiten operaciones
adicionales:

POSTDEC0, POSTDEC1, POSTDEC2.


POSTINC0, POSTINC1, POSTINC2.
PREINC0, PREINC1, PREINC2.
PLUSW0, PLUSW1, PLUSW2.

La lectura de estos registros virtuales mediante direccionamiento


indirecto da como resultado 0x00
La escritura de estos registros virtuales mediante direccionamiento
indirecto da como resultado un NOP.
No se deben modificar los valores de los FSRx mediante
direccionamiento indirecto, se debe acceder a estos registros siempre
mediante direccionamiento directo.
PIPELINING DE INSTRUCCIONES
ETAPAS DE INSTRUCCION
La ejecución de una instrucción podría
descomponerse en las siguientes 5 etapas:

1.F: Alimentación de la instrucción (fetch).


2. D: Decodificación de la instrucción.
3. O: Extracción y cálculo de los operandos.
4. E: Ejecución (en la ALU).
5. W: Escritura del resultado (write).
PIPELINING DE INSTRUCCIONES
El pipeline se
concentra en las
evitar las
dependencias
entre los datos.
SOLUCION DE UNA DEPENDENCIA
INSTRUCCIONES
ESPECIALES
Instrucción GOTO
INSTRUCCIONES
ESPECIALES
Instrucción CALL
INSTRUCCIONES
ESPECIALES
 Instrucción
RETURN
OSCILADORES

 XT: Que trabaja con frecuencias no mayores de 4 Mhz.

 LP: (Low Power) para frecuencias entre 32 y 200 Khz.


Este modo está destinado para trabajar con un cristal
de menor frecuencia, que, como consecuencia, hará
que el PIC consuma menos corriente
TIPOS DE OSCILADORES
 HS: Oscilador tipo "HS" (High Speed) para
frecuencias comprendidas entre 4 y 20 MHz.
Habremos de usar esta configuración
cuando usemos cristales mayores de 4 MHz.
La conexión es la misma que la de un cristal
normal, a no ser que usemos un circuito
oscilador.

 INTOSC

 EXTRC
RESET
Cuando se ejecuta un reset, se producen dos acciones importantes.
El contador de programa se vuelve a colocar en el principio del programa
(0000 h).
Los registros modificados vuelven a su estado por defecto.

El reset puede ser provocado por 3 causas diferentes que dan origen a 5
modos:

1. Conexión de la alimentación al PIC POR (Power On Reset).

2. Activando la patilla MLCR mientras el PIC está en modo normal.

3. Activando la patilla MLCR mientras el PIC está en modo SLEEP.

4. Un desbordamiento del WDT mientras el PIC está en modo normal.

5. Un desbordamiento del WDT mientras el PIC está en modo SLEEP.


FUENTES DE RESET
Power On Reset:
Cuando se alimenta al PIC, se genera automáticamente un reset gracias a un
circuito interno que detecta la subida de la tensión de alimentación en el rango
de 1.2 a 1,7 voltios. Esto elimina la necesidad de utilizar un circuito externo
mediante resistencia y condensador para conseguir un reset a la alimentción y si
no va a utilizarse un reset manual, la patilla MCLR, puede conectarse a positivo
(VCC) directamente o a través de una resistencia para desactivarla.

 En todos los casos, salvo en el quinto, el contador de programa PC se pone a


0000 h (vector de reset), donde debe encontrarse la primera instrucción
ejecutable del programa. Además todos los registros específicos (SFR) son
colocados en estados predeterminados.
 En el quinto caso, cuando se produce un desbordamiento del WDT mientras
el PIC está en modo SLEEP.
 No se produce un reset propiamente dicho, sino que el PIC se sale del modo
SLEEP, se "despierta" mediante el temporizador watchdog y el PC se
incrementa en una unidad para pasar a la instrucción que sigue a la
instrucción SLEEP.
 Igual que cuando se sale de este modo mediante una interrupción, si el
bit GIE del registro INTCON está a uno.
REGISTRO STATUS
Contiene el estado aritmético de la ALU, el estado
del RESET y los bits para la selección de banco.

You might also like