Sep 222012

 

Esta instrucción la encontraremos en los siguientes microcontroladores
PIC16c5X, PIC16C64, PIC16C71, PIC16C74, PIC16C84, PIC16F84 y PIC16F873.

Instrucción SUBWF
SUBWFResta f – W
SintaxisSUBWF f,d
Operandos0 <= f <= 31 d[0,1]
Operaciónf – W -> f si d=1f – W -> W si d=0
Flags implicadosC, DC, Z
Código operación0000 10df ffff
DescripciónResta el contenido de W del contenido de f, y almacena el resultado en W si d=0 y en f si d=1. La sustracción se realiza en complemento a dos.
Ciclos de reloj1
Palabras1
Ejemplos
SUBWF REG,0

Antes de la instrucción:   REG = 0x1
                           W = 0x2

Despues de la instrucción: REG = 0xFF
                           W = 0xFF

 

Repertorio de instrucciones microcontroladores PIC



Contenido relacionado




  2 comentarios en “Instrucción SUBWF”

  1. ¿Cuando se ven afectados los otros bits C, Z y CD?

    • Los Flags o banderas son marcadores, representados por bits dentro del registro STATUS, y son:

      C : Flag de Carry, se pone a 1 cuando la operación que le afecta sobrepasa el nivel de representación del procesador, en nuestro caso es de 8 BIT’s , de esta manera si sumamos a 0b11111111 un 0b00000011 el resultado sería 0b00000010 y el BIT de Carry pasaría a 1.
      Z : Flag de cero, se pone a 1 cuando una operación lógica o aritmética da 0 (cero)como resultado. En cualquier otro caso se pone a 0.
      DC : Flag de carry del nibble inferior, este se comporta igual que el BIT de Carry, solo que el límite de representación son los 4 bits inferiores, de esta manera si tenemos 0b00001111 y sumamos 0b00000111, el resultado será 0b00010110 y el BIT de DC se pone a 1, el BIT de Carry estará a 0 al no superarse los 8 bits y el de Z a 0 al ser el número diferente de 0.

      Espero haberte aclarado el tema.

 Deja un Comentario

(Requerido)

(Requerido)