
Instruction Set Description
4.6.2.46 SUB
SUB[.W]
Subtract source word from destination word
SUB.B
Subtract source byte from destination byte
Syntax
SUB src,dst
or
SUB.W src,dst
SUB.B src,dst
Operation
(.not.src) + 1 + dst
→
dst or dst – src
→
dst
Description
The source operand is subtracted from the destination operand. This is made by adding
the 1s complement of the 1 to the destination. The source operand is not
affected, the result is written to the destination operand.
Status Bits
N:
Set if result is negative (src > dst), reset if positive (src
≤
dst)
Z:
Set if result is zero (src = dst), reset otherwise (src
≠
dst)
C:
Set if there is a carry from the MSB, reset otherwise
V:
Set if the subtraction of a negative source operand from a positive destination
operand delivers a negative result, or if the subtraction of a positive source operand
from a negative destination operand delivers a positive result, reset otherwise (no
overflow)
Mode Bits
OSCOFF, CPUOFF, and GIE are not affected.
Example
A 16-bit constant 7654h is subtracted from RAM word EDE.
SUB
#7654h,&EDE
; Subtract 7654h from EDE
Example
A table word pointed to by R5 (20-bit address) is subtracted from R7. Afterwards, if R7
contains zero, jump to label TONI. R5 is then auto-incremented by 2. R7.19:16 = 0.
SUB
@R5+,R7
; Subtract table number from R7. R5 + 2
JZ
TONI
; R7 = @R5 (before subtraction)
...
; R7 <> @R5 (before subtraction)
Example
Byte CNT is subtracted from byte R12 points to. The address of CNT is within PC ± 32K.
The address R12 points to is in full memory range.
SUB.B
CNT,0(R12)
; Subtract CNT from @R12
179
SLAU272C – May 2011 – Revised November 2013
CPUX
Copyright © 2011–2013, Texas Instruments Incorporated