Vault 7: Projects
This publication series is about specific projects related to the Vault 7 main publication.
16-bit MCU and DSC Programmer’s Reference Manual
DS70157F-page 212 © 2005-2011 Microchip Technology Inc.
CPSLT
Signed Compare Wb with Wn, Skip if Less Than (Wb < Wn)
Implemented in: PIC24F PIC24H PIC24E dsPIC30F dsPIC33F dsPIC33E
X X X X
Syntax: {label:} CPSLT{.B} Wb, Wn
Operands: Wb ∈ [W0 ... W15]
Wn ∈ [W0 ... W15]
Operation: (Wb) – (Wn)
Skip if (Wb) < (Wn)
Status Affected: None
Encoding: 1110 0110 1www wB00 0000 ssss
Description: Compare the contents of Wb with the contents of Wn by performing the
subtraction (Wb) – (Wn), but do not store the result. If (Wb) < (Wn), the
next instruction (fetched during the current instruction execution) is
discarded and on the next cycle, a NOP is executed instead. Otherwise, the
next instruction is executed as normal.
The ‘w’ bits select the address of the Wb source register.
The ‘B’ bit selects byte or word operation (‘0’ for word, ‘1’ for byte).
The ‘s’ bits select the address of the Wn source register.
Note: The extension .B in the instruction denotes a byte operation
rather than a word operation. You may use a .W extension to
denote a word operation, but it is not required.
Words: 1
Cycles: 1 (2 or 3 if skip taken)
Example 1:
002000 HERE: CPSLT.B W8, W9; If W8 < W9 (Byte mode),
002002 GOTO BYPASS; skip the GOTO
002006 . . .
002008 . . .
00200A BYPASS: . . .
00200C . . .
Before
Instruction
After
Instruction
PC 00 2000 PC 00 2002
W8 00FF W8 00FF
W9 26FE W9 26FE
SR 0008 (N = 1) SR 0008 (N = 1)
Example 2:
018000 HERE: CPSLT W3, W6; If W3 < W6 (Word mode),
018002 CALL _FIR; skip the subroutine call
018006 . . .
018008 . . .
Before
Instruction
After
Instruction
PC 01 8000 PC 01 8006
W3 2600 W3 2600
W6 3000 W6 3000
SR 0000 SR 0000
Protego_Release_01_05-Related-OEM-Documentation-PIC24FJ64GA004-Programmers_Reference_Manual.pdf