ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Antes de continuar es necesario definir algunos terminos que se usaran para explicar las instrucciones:


Enviado por   •  2 de Febrero de 2016  •  Apuntes  •  1.508 Palabras (7 Páginas)  •  324 Visitas

Página 1 de 7

Antes de continuar es necesario definir algunos terminos que se usaran para explicar las instrucciones:

f: cualquier registro del microcontrolador

W: registro de trabajo

b: posicion de un bit en el registro 'f'

d: destino, puede ser 'f' (d=1) o 'W' (d=0)

etiqueta: grupo de caracteres que marcan el inicio de una parte del programa

[]: opcional

: posicion de un bit dentro de un registro

Instrucciones orientadas a registros

ADDWF: Suma W y f

Suma el contenido del registro 'W' y el registro 'f'. Si "d" es 0, el resultado se almacena en el registro W. Si 'd' es 1 el resutado se almacena en el registro 'f'.

Sintaxis: [etiqueta] ADDWF f,d

Operación: (W) + (f) --> (destino)

Flags afectados: C, DC, Z

Ejemplo: ADDWF REG,1

Antes de la instrucción: W=0x03, REG=0x04

Después de la instrucción: W=0x03, REG=0x07

ANDWF: W AND f

Realiza la operación lógica AND entre el registro W y el registro "f". Si "d" es 0 el resultado se almacena en el registro W. Si "d" es 1, el resultado se almacena en el registro "f".

Sintaxis: [etiqueta] ANDWF f,d

Operación: (W) AND (f) --> (destino)

Flags afectados: Z

Ejemplo: ANDWF REG,1

Antes de la instrucción: W=0x17, REG= 0xC2

Después de la instrucción: W=0x17, REG= 0x02

CLRF: Borra un registro

Borra el contenido del registro 'f' y se activa el flag Z.

Sintaxis: [etiqueta] CLRF f

Flags afectados: Z

Ejemplo: CLRF REG

Antes de la instrucción: REG=0x54

Después de la instrucción: REG=0x00, Z=1

CLRW: Borra el registro de trabajo W

Borra el contenido del registro 'W' y se activa el flag Z. Esta instruccion no tiene operandos.

Sintaxis: [etiqueta] CLRW

Flags afectados: Z

Ejemplo: CLRW

Antes de la instrucción: W=0x54

Después de la instrucción: W=0x00, Z=1

COMF: Complementa el registro f

El contenido del registro 'f' se complementa. Si d=0 el resultado se almacena en el registro W. Si d=1 el resultado se almacena en el registro 'f'.

Sintaxis: [etiqueta] COMF f,d

Flags afectados: Z

Ejemplo: COMF REG,0

Antes de la instruccion: REG=0x13

Después de la instrucción: REG=0x13, W=0xEC

DECF: Decrementa f en 1

De decrementa en uno el contenido del registro 'f'. Si d=0, el resultado se almacena en W. Si d=1, el resultado se almacena en 'f'.

Sintaxis: [etiqueta] DECF f,d

Flags afectados: Z

Ejemplo: DEC CONT, 1

Antes de la instrucción: CONT=0x01, Z=0

Después de la instrucción: CONT=0x00, Z=1

DECFSZ: Decrementa en 1 y salta si el resultado es 0

El contenido del registro 'f' se decrementa. Si 'd=0, el resultado se coloca en el registro W. Si d=1, el resultado se coloca en el registro 'f'. Si el resultado es 0, se salta la siguiente instrucción y se continúa con la ejecución.

Sintaxis: [etiqueta] DECFSZ f,d

Flags afectados: Ninguno

INCF: Incrementa el registro f

Incrementa en uno el contenido del registro 'f'. Si d=0, el resultado se almacena en W. Si d=1, el resultado se almacena en 'f'.

Sintaxis: [label] INCF f,d

Flags afectados: Z

Ejemplo: INCF CONT,1

Antes de la instrucción: CONT=0xFF, Z=0

Después de la instrucción: CONT=0x00, Z=1

INCFSZ: Incrementa en 1 y salta si el resultado es 0

El contenido del registro 'f' se incrementa. Si d=0, el resultado se coloca en el registro W. Si d=1, el resultado se coloca en el registro 'f'. Si el resultado es 0, se salta la siguiente instrucción y se continúa con la ejecución.

Sintaxis: [etiqueta] DECFSZ f,d

Flags afectados: Ninguno

IORWF: W OR f

Realiza la operación lógica OR entre el registro W y el registro 'f'. Si d=0 el resultado se almacena en el registro W. Si d=1, el resultado se almacen en el registro 'f'.

Sintaxis: [etiqueta] IORWF f,d

Flags afectados: Z

Ejemplo: IORWF REG,0

Antes de la instrucción: REG=0x13, W=0x91

Después de la instrucción: REG=0x13, W=0x93

MOVF: Mover el registro f

El contenido del registro 'f' se mueve al destino 'd'. Si d=0, el destino es el registro W. Si d=1, el destino es el propio registro 'f'.

Sintaxis: [etiqueta] MOVF f,d

Flags afectados: Z

Ejemplo: MOVF REG,0

Después de la instrucción: W=REG

RLF: Rota el registro f a la izquierda

El contenido del registro 'f' se rota una posición a la izquierda. El bit de más peso pasa al carry y el carry se introduce por el bit de menos peso de 'f'. Si d=0, el resultado se coloca en el registro W. Si d=1, el resultado queda en el registro 'f'.

Sintaxis: [etiqueta] RLF f,d

Flags afectados: C

Ejemplo: RLF REG,1

Antes de la instrucción: REG=b'11100110', C=0

Después de la instrucción: REG=b'11001100', C=1

RRF: Rota el registro f a la derecha

El contenido del registro 'f' se rota una posición a la derecha. El bit de menos peso pasa al carry y el carry se introduce por el bit de más peso de 'f'. Si d=0, el resultado se coloca en el registro W. Si d=1, el resultado queda en el registro 'f'.

Sintaxis: [etiqueta] RLF f,d

Flags afectados: C

Ejemplo: RLF REG,1

Antes de la instrucción: REG=b'11100110', C=0

Después de la instrucción: REG=b'01110011', C=0

SUBWF: Resta f - W

Resta el contenido del registro 'f' menos el contenido del registro W. Si d=0, el resultado se almacena en el registro W. Si d=1, el resultado se almacena

...

Descargar como (para miembros actualizados) txt (10 Kb) pdf (86 Kb) docx (14 Kb)
Leer 6 páginas más »
Disponible sólo en Clubensayos.com