
62
3.2 Functions
Chapter 3 Functions
[ Instruction Code/Number of Cycles ]
Page=
Compare
[ Syntax ]
CMP.size (:format) src,dest
[ Description Example ]
[ Selectable src/dest ]
[ Function ]
[ Flag Change ]
CMP CMP
src dest
R0L/R0 R0H/R1 R1L/R2 R1H/R3 R0L/R0 R0H/R1 R1L/R2 R1H/R3
A0/A0
*1
A1/A1
*1
[A0] [A1] A0/A0
*1
A1/A1
*1
[A0] [A1]
dsp:8[A0] dsp:8[A1] dsp:8[SB] dsp:8[FB] dsp:8[A0] dsp:8[A1] dsp:8[SB] dsp:8[FB]
dsp:16[A0] dsp:16[A1] dsp:16[SB] abs16 dsp:16[A0] dsp:16[A1] dsp:16[SB] abs16
dsp:20[A0] dsp:20[A1] abs20 #IMM dsp:20[A0] dsp:20[A1] abs20 SP/SP
R2R0 R3R1 A1A0 R2R0 R3R1 A1A0
(See the next page for
src
/
dest
classified by format.)
CMP.B:S #10,R0L
CMP.W:G R0,A0
CMP.W #–3,R0
CMP.B #5,Ram:8[FB]
CMP.B A0,R0L
[ Operation ]
dest – src
CoMPare
• Each flag bit of the flag register varies depending on the result of subtraction of
src
from
dest
.
• If
dest
is an A0 or A1 when the size specifier (.size) you selected is (.B),
src
is zero-expanded to
perform operation in 16 bits. If
src
is an A0 or A1, operation is performed on the 8 low-order bits of A0
or A1.
UIOBSZDC
Conditions
O : The flag is set when a signed operation resulted in exceeding +32767 (.W) or –32768 (.W), or
+127 (.B) or –128 (.B); otherwise cleared.
S : The flag is set when the operation resulted in MSB = 1; otherwise cleared.
Z : The flag is set when the operation resulted in 0; otherwise cleared.
C : The flag is set when an unsigned operation resulted in any value equal to or greater than 0;
otherwise cleared.
; A0’s 8 low-order bits and R0L are compared.
G , Q , S (Can be specified)
B , W
163
Flag
Change
*1 If you specify (.B) for the size specifier (.size), you cannot choose A0 or A1 for
src
and
dest
simulta-
neously.
Komentarze do niniejszej Instrukcji