SUB, SUBB

NOTE: These items have been discontinued for a long time.
We no longer support these products or offer alternatives.

We retain these pages so that users can see what their existing tools support and to provide download links to the final documentation and software versions. We have a few replacement parts left, but not many. Available items have an 'ADD to CART' or 'Buy Now' button next to them. Otherwise they are not available.

logo has a few items in stock as well.

 

SUB        fr,#literal        Subtract literal from fr


Words:        2        Cycles:        2                Affects:        C, DC, Z

 

Operation:        Literal is subtracted from fr via W. C will be cleared to 0 if an underflow occurred, otherwise C will be set to 1. DC will be cleared or set, depending on whether or not an underflow occurred in the least-significant nibble. Z will be set to 1 if the result was 0, otherwise Z will be cleared to 0.

 

Coding:        MOVLW                literal

       SUBWF                fr,1

 

 

SUB        fr1,fr2        Subtract fr2 from fr


Words:        2        Cycles:        2                Affects:        C, DC, Z

 

Operation:        Fr2 is subtracted from fr1 via W. C will be cleared to 0 if an underflow occurred, otherwise C will be set to 1. DC will be cleared or set, depending on whether or not an underflow occurred in the least-significant nibble. Z will be set to 1 if the result was 0, otherwise Z will be cleared to 0.

 

Coding:        MOVF                fr2,0

       SUBWF                fr1,1

 

 

 

SUB        fr,W                Subtract W from fr


Words:        1        Cycles:        1                Affects:        C, DC, Z

 

Operation:        W is subtracted from fr. C will be cleared to 0 if an underflow occurred, otherwise C will be set to 1. DC will be cleared or set, depending on whether or not an underflow occurred in the least-significant nibble. Z will be set to 1 if the result was 0, otherwise Z will be cleared to 0.

 

Coding:        SUBWF                fr,1

 

 

SUBB        fr,bit                Subtract bit from fr


Words:        2        Cycles:        2                Affects:        Z

 

Operation:        If bit reads 0, fr is decremented. If fr was decremented, Z will be set to 1 if the result was 0, else Z will be cleared to 0. This instruction is useful for subtracting the carry from the upper byte of a double-byte value after the lower byte has been subtracted.

 

Coding:        BTFSS        3,0

       DECF                fr,1

 

Note:        The TechTools assemblers define a bit as port.bitposition, as in the following examples:

 

       RA.3 = bit 3 of port A        PortB.0 = bit 0 of port B