命令一覧表
オリジナルはPIC24FJ64GA004 Data SheetのTABLE 25-1と25-2です。違いは以下の通り。
- SYMBOLへのリンクがある。
- オペコードに{.B}と{W}を追加している。
- 並び順をdsPIC30F/33F Programmer’s Reference Manual掲載順に変更している。
- "dsPIC30F/33F Programmer’s Reference Manual"(Revision C (February 2008))のInstruction掲載ページ番号を項目追加している。
- その他誤記の修正。
MNEMONIC LIST
ADD | ADDC | AND | ASR | BCLR | BRA | BSET | BSW | BTG | BTSC |
BTSS | BTST | BTSTS | CALL | CLR | CLRWDT | COM | CP | CP0 | CPB |
CPSEQ | CPSGT | CPSLT | CPSNE | DAW | DEC | DEC2 | DISI | DIV | EXCH |
FF1L | FF1R | GOTO | INC | INC2 | IOR | LNK | LSR | MOV | MUL |
NEG | NOP | POP | PUSH | PWRSAV | RCALL | REPEAT | RESET | RETFIE | RETLW |
RETURN | RLC | RLNC | RRC | RRNC | SE | SETM | SL | SUB | SUBB |
SUBBR | SUBR | SWAP | TBLRDH | TBLRDL | TBLWTH | TBLWTL | ULNK | XOR | ZE |
SYMBOLS USED IN OPCODE DESCRIPTIONS
Field | Description |
---|---|
#text | Means literal defined by "text" |
(text) | Means "content of text" |
[text] | Means "the location addressed by text" |
{ } | Optional field or operation |
Register bit field | |
.B | Byte mode selection |
.D | Double-Word mode selection |
.S | Shadow register select |
.w | Word mode selection (default) |
bit4 | 4-bit bit selection field (used in word addressed instructions) ∈ {0...15} |
C, DC, N, OV, Z | MCU Status bits: Carry, Digit Carry, Negative, Overflow, Sticky Zero |
Expr | Absolute address, label or Expression (resolved by the linker) |
f | File register address ∈ {0000h...1FFFh} |
lit1 | 1-bit unsigned literal ∈ {0,1} |
lit4 | 4-bit unsigned literal ∈ {0...15} |
lit5 | 5-bit unsigned literal ∈ {0...31} |
lit8 | 8-bit unsigned literal ∈ {0...255} |
lit10 | 10-bit unsigned literal ∈ {0...255} for Byte mode, {0:1023} for Word mode |
lit14 | 14-bit unsigned literal ∈ {0...16384} |
lit16 | 16-bit unsigned literal ∈ {0...65535} |
lit23 | 23-bit unsigned literal ∈ {0...8388608}; LSB must be '0' |
None | Field does not require an entry, may be blank |
PC | Program Counter |
Slit10 | 10-bit signed literal ∈ {-512...511} |
Slit16 | 16-bit signed literal ∈ {-32768...32767} |
Slit6 | 6-bit signed literal ∈ {-16...16} |
Wb | Base W register ∈ {W0..W15} |
Wd | Destination W register ∈ { Wd, [Wd], [Wd++], [Wd--], [++Wd], [--Wd] } |
Wdo | Destination W register ∈ { Wnd, [Wnd], [Wnd++], [Wnd--], [++Wnd], [--Wnd], [Wnd+Wb] } |
Wm,Wn | Dividend, Divisor working register pair (direct addressing) |
Wn | One of 16 working registers ∈ {W0..W15} |
Wnd | One of 16 destination working registers ∈ {W0..W15} |
Wns | One of 16 source working registers ∈ {W0..W15} |
WREG | W0 (working register used in file register instructions) |
Ws | Source W register ∈ { Ws, [Ws], [Ws++], [Ws--], [++Ws], [--Ws] } |
Wso | Source W register ∈ { Wns, [Wns], [Wns++], [Wns--], [++Wns], [--Wns], [Wns+Wb] } |
Assembly | Description | # of | Status Flags Affected | PDF page | ||
---|---|---|---|---|---|---|
Mne- mon- ic | Syntax | Wo- rds | Cyc- les | |||
ADD | ADD{.B} f | f = f + WREG | 1 | 1 | C DC N OV Z | 81 |
ADD{.B} f,WREG | WREG = f + WREG | 1 | 1 | C DC N OV Z | 81 | |
ADD{.B} #lit10,Wn | Wd = lit10 + Wd | 1 | 1 | C DC N OV Z | 82 | |
ADD{.B} Wb,#lit5,Wd | Wd = Wb + lit5 | 1 | 1 | C DC N OV Z | 83 | |
ADD{.B} Wb,Ws,Wd | Wd = Wb + Ws | 1 | 1 | C DC N OV Z | 84 | |
ADDC | ADDC{.B} f | f = f + WREG + (C) | 1 | 1 | C DC N OV Z | 88 |
ADDC{.B} f,WREG | WREG = f + WREG + (C) | 1 | 1 | C DC N OV Z | 88 | |
ADDC{.B} #lit10,Wn | Wd = lit10 + Wd + (C) | 1 | 1 | C DC N OV Z | 89 | |
ADDC{.B} Wb,#lit5,Wd | Wd = Wb + lit5 + (C) | 1 | 1 | C DC N OV Z | 90 | |
ADDC{.B} Wb,Ws,Wd | Wd = Wb + Ws + (C) | 1 | 1 | C DC N OV Z | 91 | |
AND | AND{.B} f | f = f .AND. WREG | 1 | 1 | N Z | 93 |
AND{.B} f,WREG | WREG = f .AND. WREG | 1 | 1 | N Z | 93 | |
AND{.B} #lit10,Wn | Wd = lit10 .AND. Wd | 1 | 1 | N Z | 94 | |
AND{.B} Wb,#lit5,Wd | Wd = Wb .AND. lit5 | 1 | 1 | N Z | 95 | |
AND{.B} Wb,Ws,Wd | Wd = Wb .AND. Ws | 1 | 1 | N Z | 96 | |
ASR | ASR{.B} f | f = Arithmetic Right Shift f | 1 | 1 | C N OV Z | 98 |
ASR{.B} f,WREG | WREG = Arithmetic Right Shift f | 1 | 1 | C N OV Z | 98 | |
ASR{.B} Ws,Wd | Wd = Arithmetic Right Shift Ws | 1 | 1 | C N OV Z | 99 | |
ASR Wb,#lit4,Wnd | Wnd = Arithmetic Right Shift Wb by lit4 | 1 | 1 | N Z | 101 | |
ASR Wb,Wns,Wnd | Wnd = Arithmetic Right Shift Wb by Wns | 1 | 1 | N Z | 102 | |
BCLR | BCLR{.B} f,#bit4 | Bit Clear f | 1 | 1 | None | 103 |
BCLR{.B} Ws,#bit4 | Bit Clear Ws | 1 | 1 | None | 104 | |
BRA | BRA Expr | Branch Unconditionally | 1 | 2 | None | 105 |
BRA Wn | Computed Branch | 1 | 2 | None | 106 | |
BRA C,Expr | Branch if Carry | 1 | 1(2) | None | 107 | |
BRA GE,Expr | Branch if Greater than or Equal | 1 | 1(2) | None | 109 | |
BRA GEU,Expr | Branch if Unsigned Greater than or Equal | 1 | 1(2) | None | 110 | |
BRA GT,Expr | Branch if Greater than | 1 | 1(2) | None | 111 | |
BRA GTU,Expr | Branch if Unsigned Greater than | 1 | 1(2) | None | 112 | |
BRA LE,Expr | Branch if Less than or Equal | 1 | 1(2) | None | 113 | |
BRA LEU,Expr | Branch if Unsigned Less than or Equal | 1 | 1(2) | None | 114 | |
BRA LT,Expr | Branch if Less than | 1 | 1(2) | None | 115 | |
BRA LTU,Expr | Branch if Unsigned Less than | 1 | 1(2) | None | 116 | |
BRA N,Expr | Branch if Negative | 1 | 1(2) | None | 117 | |
BRA NC,Expr | Branch if Not Carry | 1 | 1(2) | None | 118 | |
BRA NN,Expr | Branch if Not Negative | 1 | 1(2) | None | 119 | |
BRA NOV,Expr | Branch if Not Overflow | 1 | 1(2) | None | 120 | |
BRA NZ,Expr | Branch if Not Zero | 1 | 1(2) | None | 121 | |
BRA OV,Expr | Branch if Overflow | 1 | 1(2) | None | 124 | |
BRA Z,Expr | Branch if Zero | 1 | 1(2) | None | 127 | |
BSET | BSET{.B} f,#bit4 | Bit Set f | 1 | 1 | None | 128 |
BSET{.B} Ws,#bit4 | Bit Set Ws | 1 | 1 | None | 129 | |
BSW | BSW.C Ws,Wb | Write C bit to Ws<Wb> | 1 | 1 | None | 130 |
BSW.Z Ws,Wb | Write Z bit to Ws<Wb> | 1 | 1 | None | 130 | |
BTG | BTG{.B} f,#bit4 | Bit Toggle f | 1 | 1 | None | 132 |
BTG{.B} Ws,#bit4 | Bit Toggle Ws | 1 | 1 | None | 133 | |
BTSC | BTSC{.B} f,#bit4 | Bit Test f, Skip if Clear | 1 | 1(2 or3) | None | 134 |
BTSC Ws,#bit4 | Bit Test Ws, Skip if Clear | 1 | 1(2 or3) | None | 136 | |
BTSS | BTSS{.B} f,#bit4 | Bit Test f, Skip if Set | 1 | 1(2 or3) | None | 138 |
BTSS Ws,#bit4 | Bit Test Ws, Skip if Set | 1 | 1(2 or3) | None | 139 | |
BTST | BTST{.B} f,#bit4 | Bit Test f | 1 | 1 | Z | 141 |
BTST.C Ws,#bit4 | Bit Test Ws to C | 1 | 1 | C | 142 | |
BTST.Z Ws,#bit4 | Bit Test Ws to Z | 1 | 1 | Z | 142 | |
BTST.C Ws,Wb | Bit Test Ws<Wb> to C | 1 | 1 | C | 143 | |
BTST.Z Ws,Wb | Bit Test Ws<Wb> to Z | 1 | 1 | Z | 143 | |
BTSTS | BTSTS{.B} f,#bit4 | Bit Test then Set f | 1 | 1 | Z | 145 |
BTSTS.C Ws,#bit4 | Bit Test Ws to C, then Set | 1 | 1 | C | 146 | |
BTSTS.Z Ws,#bit4 | Bit Test Ws to Z, then Set | 1 | 1 | Z | 146 | |
CALL | CALL lit23 | Call Subroutine | 2 | 2 | None | 147 |
CALL Wn | Call Indirect Subroutine | 1 | 2 | None | 148 | |
CLR | CLR{.B} f | f = 0x0000 | 1 | 1 | None | 149 |
CLR{.B} WREG | WREG = 0x0000 | 1 | 1 | None | 149 | |
CLR{.B} Wd | Wd = 0x0000 | 1 | 1 | None | 150 | |
CLRWDT | CLRWDT | Clear Watchdog Timer | 1 | 1 | WDTO, Sleep | 153 |
COM | COM{.B} f | f = ~f | 1 | 1 | N Z | 154 |
COM{.B} f,WREG | WREG = ~f | 1 | 1 | N Z | 154 | |
COM{.B} Ws,Wd | Wd = ~Ws | 1 | 1 | N Z | 155 | |
CP | CP{.B} f | Compare f with WREG | 1 | 1 | C DC N OV Z | 156 |
CP{.B} Wb,#lit5 | Compare Wb with lit5 | 1 | 1 | C DC N OV Z | 157 | |
CP{.B} Wb,Ws | Compare Wb with Ws (Wb - Ws) | 1 | 1 | C DC N OV Z | 158 | |
CP0 | CP0{.B} f | (f) - 0x0 | 1 | 1 | C DC N OV Z | 159 |
CP0{.B} Ws | (Ws) - 0x0000 | 1 | 1 | C DC N OV Z | 160 | |
CPB | CPB{.B} f | (f) - (WREG) - (~C) | 1 | 1 | C DC N OV Z | 161 |
CPB{.B} Wb,#lit5 | (Wb) - lit5 - (~C) | 1 | 1 | C DC N OV Z | 162 | |
CPB{.B} Wb,Ws | (Wb) - (Ws) - (~C) | 1 | 1 | C DC N OV Z | 163 | |
CPSEQ | CPSEQ{.B} Wb,Wn | (Wb) - (Wn), Skip if (Wb) = (Wn) | 1 | 1(2 or3) | None | 165 |
CPSGT | CPSGT{.B} Wb,Wn | (Wb) - (Wn), Skip if (Wb) > (Wn) | 1 | 1(2 or3) | None | 166 |
CPSLT | CPSLT{.B} Wb,Wn | (Wb) - (Wn), Skip if (Wb) < (Wn) | 1 | 1(2 or3) | None | 167 |
CPSNE | CPSNE{.B} Wb,Wn | (Wb) - (Wn), Skip if (Wb) ≠ (Wn) | 1 | 1(2 or3) | None | 168 |
DAW | DAW.B Wn | Wn = Decimal Adjust Wn | 1 | 1 | C | 169 |
DEC | DEC{.B} f | f = f - 1 | 1 | 1 | C DC N OV Z | 170 |
DEC{.B} f,WREG | WREG = f - 1 | 1 | 1 | C DC N OV Z | 170 | |
DEC{.B} Ws,Wd | Wd = Ws - 1 | 1 | 1 | C DC N OV Z | 171 | |
DEC2 | DEC2{.B} f | f = f - 2 | 1 | 1 | C DC N OV Z | 172 |
DEC2{.B} f,WREG | WREG = f - 2 | 1 | 1 | C DC N OV Z | 172 | |
DEC2{.B} Ws,Wd | Wd = Ws - 2 | 1 | 1 | C DC N OV Z | 173 | |
DISI | DISI #lit14 | Disable Interrupts for k Instruction Cycles | 1 | 1 | None | 174 |
DIV | DIV.S{W} Wm,Wn | Signed 16/16-bit Integer Divide | 1 | 18 | C N OV Z | 175 |
DIV.SD Wm,Wn | Signed 32/16-bit Integer Divide(m is even) | 1 | 18 | C N OV Z | 175 | |
DIV.U{W} Wm,Wn | Unsigned 16/16-bit Integer Divide | 1 | 18 | C N OV Z | 177 | |
DIV.UD Wm,Wn | Unsigned 32/16-bit Integer Divide(m is even) | 1 | 18 | C N OV Z | 177 | |
EXCH | EXCH Wns,Wnd | Swap Wns with Wnd | 1 | 1 | None | 189 |
FF1L | FF1L Ws,Wnd | Find First One from Left (MSb) Side | 1 | 1 | C | 192 |
FF1R | FF1R Ws,Wnd | Find First One from Right (LSb) Side | 1 | 1 | C | 194 |
GOTO | GOTO Expr | Go to Address | 2 | 2 | None | 196 |
GOTO Wn | Go to Indirect | 1 | 2 | None | 197 | |
INC | INC{.B} f | f = f + 1 | 1 | 1 | C DC N OV Z | 198 |
INC{.B} f,WREG | WREG = f + 1 | 1 | 1 | C DC N OV Z | 198 | |
INC{.B} Ws,Wd | Wd = Ws + 1 | 1 | 1 | C DC N OV Z | 199 | |
INC2 | INC2{.B} f | f = f + 2 | 1 | 1 | C DC N OV Z | 200 |
INC2{.B} f,WREG | WREG = f + 2 | 1 | 1 | C DC N OV Z | 200 | |
INC2{.B} Ws,Wd | Wd = Ws + 2 | 1 | 1 | C DC N OV Z | 201 | |
IOR | IOR{.B} f | f = f .IOR. WREG | 1 | 1 | N Z | 202 |
IOR{.B} f,WREG | WREG = f .IOR. WREG | 1 | 1 | N Z | 202 | |
IOR{.B} #lit10,Wn | Wd = lit10 .IOR. Wd | 1 | 1 | N Z | 203 | |
IOR{.B} Wb,#lit5,Wd | Wd = Wb .IOR. lit5 | 1 | 1 | N Z | 204 | |
IOR{.B} Wb,Ws,Wd | Wd = Wb .IOR. Ws | 1 | 1 | N Z | 205 | |
LNK | LNK #lit14 | Link Frame Pointer | 1 | 1 | None | 209 |
LSR | LSR{.B} f | C = f<0>, f | 1 | 1 | C N OV Z | 210 |
LSR{.B} f,WREG | C = f<0>, W0 | 1 | 1 | C N OV Z | 210 | |
LSR{.B} Ws,Wd | C = Ws<0>, Wd | 1 | 1 | C N OV Z | 211 | |
LSR Wb,#lit4,Wnd | Wnd = Logical Right Shift Wb by lit4 | 1 | 1 | N Z | 213 | |
LSR Wb,Wns,Wnd | Wnd = Logical Right Shift Wb by Wns | 1 | 1 | N Z | 214 | |
MOV | MOV{.B} f | Move f to f | 1 | 1 | N Z | 219 |
MOV{.B} f,WREG | Move f to WREG | 1 | 1 | N Z | 219 | |
MOV{.B} WREG,f | Move WREG to f | 1 | 1 | N Z | 220 | |
MOV f,Wnd | Move f to Wnd | 1 | 1 | None | 221 | |
MOV Wns,f | Move Wns to f | 1 | 1 | None | 222 | |
MOV.B #lit8,Wnd | Move 8-bit Literal to Wnd | 1 | 1 | None | 223 | |
MOV #lit16,Wnd | Move 16-bit Literal to Wnd | 1 | 1 | None | 224 | |
MOV{.B} [Wns+Slit10],Wnd | Move [Wns+Slit10] to Wnd | 1 | 1 | None | 225 | |
MOV{.B} Wns,[Wns+Slit10] | Move Wns to [Wns+Slit10] | 1 | 1 | None | 226 | |
MOV{.B} Wso,Wdo | Move Ws to Wd | 1 | 1 | None | 227 | |
MOV.D Wns,Wd | Move Double from W(ns):W(ns+1) to Wd | 1 | 2 | None | 229 | |
MOV.D Ws,Wnd | Move Double from Ws to W(nd+1):W(nd) | 1 | 2 | None | 231 | |
MUL | MUL.B f | W2 = WREG<7:0> * f<7:0> | 1 | 1 | None | 243 |
MUL f | W3:W2 = f * WREG | 1 | 1 | None | 243 | |
MUL.SS Wb,Ws,Wnd | {Wnd+1, Wnd} = Signed(Wb) * Signed(Ws) | 1 | 1 | None | 244 | |
MUL.SU Wb,#lit5,Wnd | {Wnd+1, Wnd} = Signed(Wb) * Unsigned(lit5) | 1 | 1 | None | 246 | |
MUL.SU Wb,Ws,Wnd | {Wnd+1, Wnd} = Signed(Wb) * Unsigned(Ws) | 1 | 1 | None | 248 | |
MUL.US Wb,Ws,Wnd | {Wnd+1, Wnd} = Unsigned(Wb) * Signed(Ws) | 1 | 1 | None | 250 | |
MUL.UU Wb,#lit5,Wnd | {Wnd+1, Wnd} = Unsigned(Wb) * Unsigned(lit5) | 1 | 1 | None | 252 | |
MUL.UU Wb,Ws,Wnd | {Wnd+1, Wnd} = Unsigned(Wb) * Unsigned(Ws) | 1 | 1 | None | 253 | |
NEG | NEG{.B} f | f = ~f + 1 | 1 | 1 | C DC N OV Z | 255 |
NEG{.B} f,WREG | WREG = ~f + 1 | 1 | 1 | C DC N OV Z | 255 | |
NEG{.B} Ws,Wd | Wd = Ws + 1 | 1 | 1 | C DC N OV Z | 256 | |
NOP | NOP | No Operation | 1 | 1 | None | 258 |
NOPR | No Operation | 1 | 1 | None | 259 | |
POP | POP f | Pop f from Top-of-Stack (TOS) | 1 | 1 | None | 260 |
POP Wdo | Pop from Top-of-Stack (TOS) to Wdo | 1 | 1 | None | 261 | |
POP.D Wnd | Pop from Top-of-Stack (TOS) to W(nd):W(nd+1) | 1 | 2 | None | 262 | |
POP.S | Pop Shadow Registers | 1 | 1 | All | 263 | |
PUSH | PUSH f | Push f to Top-of-Stack (TOS) | 1 | 1 | None | 264 |
PUSH Wso | Push Wso to Top-of-Stack (TOS) | 1 | 1 | None | 265 | |
PUSH.D Wns | Push W(ns):W(ns+1) to Top-of-Stack (TOS) | 1 | 2 | None | 266 | |
PUSH.S | Push Shadow Registers | 1 | 1 | None | 267 | |
PWRSAV | PWRSAV #lit1 | Go into Sleep or Idle mode | 1 | 1 | WDTO, Sleep | 268 |
RCALL | RCALL Expr | Relative Call | 1 | 2 | None | 269 |
RCALL Wn | Computed Call | 1 | 2 | None | 270 | |
REPEAT | REPEAT #lit14 | Repeat Next Instruction lit14 + 1 times | 1 | 1 | None | 271 |
REPEAT Wn | Repeat Next Instruction (Wn) + 1 times | 1 | 1 | None | 272 | |
RESET | RESET | Software Device Reset | 1 | 1 | None | 274 |
RETFIE | RETFIE | Return from Interrupt | 1 | 3(2) | None | 275 |
RETLW | RETLW #lit10,Wn | Return with Literal in Wn | 1 | 3(2) | None | 276 |
RETURN | RETURN | Return from Subroutine | 1 | 3(2) | None | 277 |
RLC | RLC{.B} f | f = Rotate Left through Carry f | 1 | 1 | C N Z | 278 |
RLC{.B} f,WREG | WREG = Rotate Left through Carry f | 1 | 1 | C N Z | 278 | |
RLC{.B} Ws,Wd | Wd = Rotate Left through Carry Ws | 1 | 1 | C N Z | 279 | |
RLNC | RLNC{.B} f | f = Rotate Left (No Carry) f | 1 | 1 | N Z | 281 |
RLNC{.B} f,WREG | WREG = Rotate Left (No Carry) f | 1 | 1 | N Z | 281 | |
RLNC{.B} Ws,Wd | Wd = Rotate Left (No Carry) Ws | 1 | 1 | N Z | 282 | |
RRC | RRC{.B} f | f = Rotate Right through Carry f | 1 | 1 | C N Z | 284 |
RRC{.B} f,WREG | WREG = Rotate Right through Carry f | 1 | 1 | C N Z | 284 | |
RRC{.B} Ws,Wd | Wd = Rotate Right through Carry Ws | 1 | 1 | C N Z | 285 | |
RRNC | RRNC{.B} f | f = Rotate Right (No Carry) f | 1 | 1 | N Z | 287 |
RRNC{.B} f,WREG | WREG = Rotate Right (No Carry) f | 1 | 1 | N Z | 287 | |
RRNC{.B} Ws,Wd | Wd = Rotate Right (No Carry) Ws | 1 | 1 | N Z | 288 | |
SE | SE Ws,Wnd | Wnd = Sign-Extended Ws | 1 | 1 | C N Z | 294 |
SETM | SETM{.B} f | f = FFFFh | 1 | 1 | None | 295 |
SETM{.B} WREG | WREG = FFFFh | 1 | 1 | None | 295 | |
SETM{.B} Ws | Ws = FFFFh | 1 | 1 | None | 296 | |
SL | SL{.B} f | f = Left Shift f | 1 | 1 | C N OV Z | 299 |
SL{.B} f,WREG | WREG = Left Shift f | 1 | 1 | C N OV Z | 299 | |
SL{.B} Ws,Wd | Wd = Left Shift Ws | 1 | 1 | C N OV Z | 300 | |
SL Wb,#lit4,Wnd | Wnd = Left Shift Wb by lit4 | 1 | 1 | N Z | 302 | |
SL Wb,Wns,Wnd | Wnd = Left Shift Wb by Wns | 1 | 1 | N Z | 303 | |
SUB | SUB{.B} f | f = f - WREG | 1 | 1 | C DC N OV Z | 304 |
SUB{.B} f,WREG | WREG = f - WREG | 1 | 1 | C DC N OV Z | 304 | |
SUB{.B} #lit10,Wn | Wn = Wn - lit10 | 1 | 1 | C DC N OV Z | 305 | |
SUB{.B} Wb,#lit5,Wd | Wd = Wb - lit5 | 1 | 1 | C DC N OV Z | 306 | |
SUB{.B} Wb,Ws,Wd | Wd = Wb - Ws | 1 | 1 | C DC N OV Z | 307 | |
SUBB | SUBB{.B} f | f = f - WREG - (~C) | 1 | 1 | C DC N OV Z | 310 |
SUBB{.B} f,WREG | WREG = f - WREG - (~C) | 1 | 1 | C DC N OV Z | 310 | |
SUBB{.B} #lit10,Wn | Wn = Wn - lit10 - (~C) | 1 | 1 | C DC N OV Z | 311 | |
SUBB{.B} Wb,#lit5,Wd | Wd = Wb - lit5 - (~C) | 1 | 1 | C DC N OV Z | 312 | |
SUBB{.B} Wb,Ws,Wd | Wd = Wb - Ws - (~C) | 1 | 1 | C DC N OV Z | 313 | |
SUBBR | SUBBR{.B} f | f = WREG - f - (~C) | 1 | 1 | C DC N OV Z | 315 |
SUBBR{.B} f,WREG | WREG = WREG - f - (~C) | 1 | 1 | C DC N OV Z | 315 | |
SUBBR{.B} Wb,#lit5,Wd | Wd = lit5 - Wb - (~C) | 1 | 1 | C DC N OV Z | 316 | |
SUBBR{.B} Wb,Ws,Wd | Wd = Ws - Wb - (~C) | 1 | 1 | C DC N OV Z | 317 | |
SUBR | SUBR{.B} f | f = WREG - f | 1 | 1 | C DC N OV Z | 319 |
SUBR{.B} f,WREG | WREG = WREG - f | 1 | 1 | C DC N OV Z | 319 | |
SUBR{.B} Wb,#lit5,Wd | Wd = lit5 - Wb | 1 | 1 | C DC N OV Z | 320 | |
SUBR{.B} Wb,Ws,Wd | Wd = Ws - Wb | 1 | 1 | C DC N OV Z | 321 | |
SWAP | SWAP.B Wn | Wn = Nibble Swap Wn | 1 | 1 | None | 323 |
SWAP Wn | Wn = Byte Swap Wn | 1 | 1 | None | 323 | |
TBLRDH | TBLRDH{.B} Ws,Wd | Read Prog<23:16> to Wd<7:0> | 1 | 2 | None | 324 |
TBLRDL | TBLRDL{.B} Ws,Wd | Read Prog<15:0> to Wd | 1 | 2 | None | 326 |
TBLWTH | TBLWTH{.B} Ws,Wd | Write Ws<7:0> to Prog<23:16> | 1 | 2 | None | 328 |
TBLWTL | TBLWTL{.B} Ws,Wd | Write Ws to Prog<15:0> | 1 | 2 | None | 330 |
ULNK | ULNK | Unlink Frame Pointer | 1 | 1 | None | 332 |
XOR | XOR{.B} f | f = f .XOR. WREG | 1 | 1 | N Z | 333 |
XOR{.B} f,WREG | WREG = f .XOR. WREG | 1 | 1 | N Z | 333 | |
XOR{.B} #lit10,Wn | Wd = lit10 .XOR. Wd | 1 | 1 | N Z | 334 | |
XOR{.B} Wb,#lit5,Wd | Wd = Wb .XOR. lit5 | 1 | 1 | N Z | 335 | |
XOR{.B} Wb,Ws,Wd | Wd = Wb .XOR. Ws | 1 | 1 | N Z | 336 | |
ZE | ZE Ws,Wnd | Wnd = Zero-Extend Ws | 1 | 1 | C N Z | 338 |