35 Pasos Son Para Toda La Gama Media Del Micro Controlador
Antes de continuar es necesario definir algunos términos que se usaran para explicar las instrucciones:
* f: cualquier registro del micro controlador
* W: registro de trabajo
* b: posición de un bit en el registro 'f'
* d: destino, puede ser 'f' (d=1) o 'W' (d=0)
* etiqueta: grupo de caracteres que marcanel inicio de una parte del programa
* []: opcional
* : posición 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 resultado 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 instrucción no tiene operandos.
* Sintaxis: [etiqueta] CLRW
* Flags afectados: Z
* Ejemplo: CLRW
* Antes de la instrucción: W=0x54
* Después de lainstrucció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 instrucción: 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 elresultado 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 elcontenido 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. Sid=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...
Regístrate para leer el documento completo.