Instruction Set Description
174
SLAU367P – October 2012 – Revised April 2020
Copyright © 2012–2020, Texas Instruments Incorporated
CPUX
4.6.2.14 CMP
CMP[.W]
Compare source word and destination word
CMP.B
Compare source byte and destination byte
Syntax
CMP src,dst
or
CMP.W src,dst
CMP.B src,dst
Operation
(.not.src) + 1 + dst
or
dst – src
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 result affects only the status
bits in SR.
Register mode: the register bits Rdst.19:16 (.W) resp. Rdst. 19:8 (.B) are not cleared.
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
Compare word EDE with a 16-bit constant 1800h. Jump to label TONI if EDE equals the
constant. The address of EDE is within PC + 32 K.
CMP
#01800h,EDE
; Compare word EDE with 1800h
JEQ
TONI
; EDE contains 1800h
...
; Not equal
Example
A table word pointed to by (R5 + 10) is compared with R7. Jump to label TONI if R7
contains a lower, signed 16-bit number. R7.19:16 is not cleared. The address of the
source operand is a 20-bit address in full memory range.
CMP.W
10(R5),R7
; Compare 2 signed numbers
JL
TONI
; R7 < 10(R5)
...
; R7 >= 10(R5)
Example
A table byte pointed to by R5 (20-bit address) is compared to the value in output Port1.
Jump to label TONI if values are equal. The next table byte is addressed.
CMP.B
@R5+,&P1OUT
; Compare P1 bits with table. R5 + 1
JEQ
TONI
; Equal contents
...
; Not equal