Está en la página 1de 2

ANEXO 2: RESUMEN DEL JUEGO DE INSTRUCCIONES

En esta tabla, la columna de la izquierda, presenta el nemnico o abreviatura de cada


instruccin, as como los parmetros que precisa (f=registro, d=destino, b=n de bit y k=constante).
En la columna siguiente se hace una breve descripcin de la misma.
A continuacin se indica el nmero de ciclos que consume cada una. Se puede observar
que todas las instrucciones de salto, sea condicional o incondicional, y que implican por tanto una
modificacin del PC, consumen 1 o 2 ciclos. Consumen un nico ciclo si el salto NO se produce.
Se trata de un ciclo normal de Bsqueda/Ejecucin. Sin embargo, si se produce el salto, se
consumen dos ciclos. Todo salto supone un desplazamiento del PC sobre la memoria de
programa. Esto implica que la secuencia Bsqueda/Ejecucin no es vlida ya que la instruccin
buscada no se corresponde con la que hay en la nueva direccin tras el salto. Hay que realizar por
tanto una nueva bsqueda.
En la siguiente columna de la tabla se expone la palabra de 14 bits correspondiente al
cdigo de operacin de la instruccin. Debemos tener en cuenta que los campos d, f, b o k
dependern del operando. El valor de aquellos bits que se representan como x, es irrelevante.
La penltima columna representa qu bits del registro de estado (STATUS) se pueden ver
modificados como consecuencia de ejecutar esa instruccin. Es importante.
La ltima columna aporta una serie de notas que se deben tener en cuenta segn la
instruccin ejecutada.
NEMNICO

ADDWF f,d
ANDWF f,d
CLRF f
CLRW
COMF f,d
DECF f,d
DECFSZ f,d
INCF f,d
INCFSZ f,d
IORWF f,d
MOVF f,d
MOVWF f
NOP
RLF f,d
RRF f,d
SUBWF f,d
SWAPF f,d
XORWF f,d
BCF f,b
BSF f,b
BTFSC f,b
BTFSS f,b
ADDLW k
ANDLW k
CALL k
CLRWDT
GOTO k
IORLW k

DESCRIPCIN
CICLOS
OP CODE
INSTRUCCIONES ORIENTADAS A REGISTROS
Sumar a W el contenido del registro f
1
00 0111 dfff ffff
Funcin AND entre W y el registro f
1
00 0101 dfff ffff
Borrar el registro f
1
00 0001 1fff ffff
Borrar el registro W
1
00 0000 0xxx xxx
Complemento a 1 del registro f
1
00 1001 dfff ffff
Decrementar el registro f en una unidad
1
00 0011 dfff ffff
Decrementar f y saltar si es igual a 0
1 (2)
00 1011 dfff ffff
Incrementar el registro f en una unidad
1
00 1010 dfff ffff
Incrementar f y saltar si es igual a 0
1 (2)
00 1111 dfff ffff
Funcin OR entre W y el registro f
1
00 0100 dfff ffff
Mover el registro f
1
00 1000 dfff ffff
Guardar el W en el registro f
1
00 0000 1fff ffff
No operar
1
00 0000 0xx0 0000
Rotacin a la izquierda a travs del C
1
00 1101 dfff ffff
Rotacin a la derecha a travs del C
1
00 1100 dfff ffff
Restar al registro f el valor de W
1
00 0010 dfff ffff
Intercambiar nibbles del registro f
1
00 1110 dfff ffff
Funcin XOR entre W y el registro f
1
00 0110 dfff ffff
INSTRUCCIONES ORIENTADAS AL BIT
Borrar el bit b del registro f
1
01 00bb bfff ffff
Activar el bit b del registro f
1
01 01bb bfff ffff
Chequea el bit b del registro f y saltar si es 0
1 (2)
01 10bb bfff ffff
Chequea el bit b del registro f y saltar si es 1
1 (2)
01 11bb bfff ffff
INSTRUCCIONES INMEDIATAS Y DE CONTROL
Sumar al registro W la constante k
1
11 111x kkkk kkkk
Funcin AND entre W y la constante k
1
11 1001 kkkk kkkk
Salto a subrutina en la direccin k
2
10 0kkk kkkk kkkk
Iniciar el temporizador WDT
1
00 0000 0110 0100
Salto incondicional a la direccin k
2
10 1kkk kkkk kkkk
Funcin OR entre W y la constante k
1
11 1000 kkkk kkkk

AN2-1

STATUS

NOTAS

C,DC,Z
Z
Z
Z
Z
Z

1,2
1,2
2

Z
Z
Z

C
C
C,DC
Z

1,2
1,2
1,2,3
1,2
1,2,3
1,2
1,2

1,2
1,2
1,2
1,2
1,2
1,2
1,2
3
3

C,DC,Z
Z
/TO,/PD
Z

MOVLW k
RETFIE
RETLW k
RETURN
SLEEP
SUBLW k
XORLW k

Cargar W con la constante k


Retorno de interrupcin
Retorno de subrutina con una constante en W
Retorno de subrutina
Modo standby de bajo consumo
Resta a la constante k el registro W
Funcin XOR entre W y la constante k

1
2
2
2
1
1
1

11 00xx kkkk kkkk


00 0000 0000 1001
11 01xx kkkk kkkk
00 0000 0000 1000
00 0000 0110 0011
11 110x kkkk kkkk
11 110x kkkk kkkk

/TO,/PD
C,DC,Z
Z

NOTAS
1.

2.
3.

Cuando una instruccin afecta a un registro que se corresponde con un


puerto de E/S, el valor empleado ledo o escrito coincide con el valor lgico
presente en las patillas fsicas de E/S y afecta al perifrico que estuviera
conectado a ese puerto.
Cuando una instruccin afecta al registro correspondiente al Timer 0, se
reinicia el prescaler si es que ste est asignado a dicho Timer.
Si el contador de programa o PC se ve modificado por alguna instruccin de
salto, bien sea condicional o incondicional, esa instruccin consume dos
ciclos.

AN2-2

También podría gustarte