dsPIC33FJ06GS101/X02 and dsPIC33FJ16GSX02/X04
TABLE 22-2: INSTRUCTION SET OVERVIEW (CONTINUED)
Base
Instr
#
Assembly
Mnemonic
Assembly Syntax
Description
# of # of Status Flags
Words Cycles Affected
48
MPY
49
MPY.N
50
MSC
51
MUL
52
NEG
MPY
Multiply Wm by Wn to Accumulator
1
Wm*Wn,Acc,Wx,Wxd,Wy,Wyd
MPY
Square Wm to Accumulator
1
Wm*Wm,Acc,Wx,Wxd,Wy,Wyd
MPY.N
Wm*Wn,Acc,Wx,Wxd,Wy,Wyd
-(Multiply Wm by Wn) to Accumulator
1
MSC
Wm*Wm,Acc,Wx,Wxd,Wy,Wyd Multiply and Subtract from Accumulator
1
,
AWB
MUL.SS Wb,Ws,Wnd
{Wnd + 1, Wnd} = signed(Wb) * signed(Ws)
1
MUL.SU Wb,Ws,Wnd
{Wnd + 1, Wnd} = signed(Wb) * unsigned(Ws) 1
MUL.US Wb,Ws,Wnd
{Wnd + 1, Wnd} = unsigned(Wb) * signed(Ws) 1
MUL.UU Wb,Ws,Wnd
{Wnd + 1, Wnd} = unsigned(Wb) *
1
unsigned(Ws)
MUL.SU Wb,#lit5,Wnd
{Wnd + 1, Wnd} = signed(Wb) * unsigned(lit5) 1
MUL.UU Wb,#lit5,Wnd
{Wnd + 1, Wnd} = unsigned(Wb) *
1
unsigned(lit5)
MUL
f
W3:W2 = f * WREG
1
NEG
Acc
Negate Accumulator
1
1
OA,OB,OAB,
SA,SB,SAB
1
OA,OB,OAB,
SA,SB,SAB
1
None
1
OA,OB,OAB,
SA,SB,SAB
1
None
1
None
1
None
1
None
1
None
1
None
1
None
1
OA,OB,OAB,
SA,SB,SAB
NEG
f
f=f+1
1
1
C,DC,N,OV,Z
NEG
f,WREG
WREG = f + 1
1
1
C,DC,N,OV,Z
53
NOP
54
POP
NEG
NOP
NOPR
POP
POP
POP.D
Ws,Wd
f
Wdo
Wnd
Wd = Ws + 1
No Operation
No Operation
Pop f from Top-of-Stack (TOS)
Pop from Top-of-Stack (TOS) to Wdo
Pop from Top-of-Stack (TOS) to
W(nd):W(nd + 1)
1
1
C,DC,N,OV,Z
1
1
None
1
1
None
1
1
None
1
1
None
1
2
None
POP.S
55
PUSH
PUSH
f
PUSH
Wso
PUSH.D Wns
PUSH.S
56
PWRSAV PWRSAV
#lit1
57
RCALL
RCALL Expr
RCALL Wn
58
REPEAT REPEAT #lit14
REPEAT Wn
59
RESET
RESET
60
RETFIE RETFIE
61
RETLW
RETLW #lit10,Wn
62
RETURN RETURN
63
RLC
RLC
f
RLC
f,WREG
RLC
Ws,Wd
64
RLNC
RLNC
f
RLNC
f,WREG
RLNC
Ws,Wd
65
RRC
RRC
f
RRC
f,WREG
RRC
Ws,Wd
Pop Shadow Registers
1
Push f to Top-of-Stack (TOS)
1
Push Wso to Top-of-Stack (TOS)
1
Push W(ns):W(ns + 1) to Top-of-Stack (TOS) 1
Push Shadow Registers
1
Go into Sleep or Idle mode
1
Relative Call
1
Computed Call
1
Repeat Next Instruction lit14 + 1 times
1
Repeat Next Instruction (Wn) + 1 times
1
Software Device Reset
1
Return from interrupt
1
Return with Literal in Wn
1
Return from Subroutine
1
f = Rotate Left through Carry f
1
WREG = Rotate Left through Carry f
1
Wd = Rotate Left through Carry Ws
1
f = Rotate Left (No Carry) f
1
WREG = Rotate Left (No Carry) f
1
Wd = Rotate Left (No Carry) Ws
1
f = Rotate Right through Carry f
1
WREG = Rotate Right through Carry f
1
Wd = Rotate Right through Carry Ws
1
1
1
1
2
1
1
2
2
1
1
1
3 (2)
3 (2)
3 (2)
1
1
1
1
1
1
1
1
1
All
None
None
None
None
WDTO,Sleep
None
None
None
None
None
None
None
None
C,N,Z
C,N,Z
C,N,Z
N,Z
N,Z
N,Z
C,N,Z
C,N,Z
C,N,Z
© 2009 Microchip Technology Inc.
Preliminary
DS70318D-page 277