Instrucciones PIC Assembly: SUBWF - Subtract W from f

Saludos!! Siempre es util tener la informacion a la mano cuando se esta trabajado con ensamblador, principalemte las instrucciones y que funcion realiza o que registros afecta el uso de estas. Recordar que estas instrucciones pueden no estar disponibles en todos los microcontroladores, asi que para mas detalle recomiendo revisar la hoja de datos.

Como dice el titulo, el dia de hoy tenemos la instruccion SUBWF con el cual podemos hacer restas.



Esta instruccion resta el contenido del registro "W" del cotenido de "f", dependiendo del valor en "d" sera el lugar en el que se almacene el resultado. Cuando se usa esta intruccion se ve afectado el estatus de los siguientes bits C, DCy Z del registro STATUS.

Como ejemplo obsevemos el siguiente fragmento de codigo:

    MOVLW   10
    MOVWF   BANKMASK(CounterDisplay)

LOOP:
    DECF        CounterDisplay,1 ;Decrementamos CounterDisplay
    MOVLW   0xFF                 ;Precargamos W = 0xFF para cuando se desborde CounterDisplay
    SUBWF    CounterDisplay,0      
    BTFSS      STATUS,2         ;Revisamos STATUSbits.Z 
    GOTO      UPDATEDisplay ;Actualizo si 0=> CounterDisplay <= 9
    GOTO      RESTARTCounter ;Si CounterDisplay < 0 (cuando se desborde y sea 0xFF)

Notaremos en el codigo que W = 0xFF y que CounterDisplay = 0x09 (por que ya se decremento), entonces la resta de CounterDisplay - W != 0 (distinto de cero) por lo tanto Z = 0, pero cuando CounterDisplay = 0 y se siga decrementando CounterDisplay = 0xFF, entonces la resta de CounterDisplay - W = 0, entonces Z = 1.

Bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.

Pido una retroalimentación avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, así también si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.
    Referencias:

    Publicar un comentario

    0 Comentarios