We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
SPC700 Opcode Matrix: Difference between revisions
From SnesLab
(linkify TCALL) |
(bolded high nybble column) |
||
(54 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
! !! x0 !! x1 !! x2 !! x3 !! x4 !! x5 !! x6 !! x7 !! x8 !! x9 !! xA !! xB !! xC !! xD !! xE !! xF | ! !! x0 !! x1 !! x2 !! x3 !! x4 !! x5 !! x6 !! x7 !! x8 !! x9 !! xA !! xB !! xC !! xD !! xE !! xF | ||
|- | |- | ||
| 0x || NOP || [[TCALL]] || SET1 || BBS || OR || OR || OR || OR || OR || OR || OR1 || ASL || ASL || PUSH || TSET1 || BRK | | '''0x''' || [[NOP (SPC700)|NOP]] || [[TCALL]] || [[SET1]] || [[BBS]] || [[OR (SPC700) | OR]] || [[OR (SPC700) | OR]] || [[OR (SPC700) | OR]] || [[OR (SPC700) | OR]] || [[OR (SPC700) | OR]] || [[OR (SPC700) | OR]] || [[OR1]] || [[ASL (SPC700) | ASL]] || [[ASL (SPC700) | ASL]] || [[PUSH]] || [[TSET1]] || [[BRK (SPC700) | BRK]] | ||
|- | |- | ||
| 1x || BPL || [[TCALL]] || CLR1 || BBC || OR || OR || OR || OR || OR || OR || DECW || ASL || ASL || DEC || CMP || JMP | | '''1x''' || [[BPL (SPC700) | BPL]] || [[TCALL]] || [[CLR1]] || [[BBC]] || [[OR (SPC700) | OR]] || [[OR (SPC700) | OR]] || [[OR (SPC700) | OR]] || [[OR (SPC700) | OR]] || [[OR (SPC700) | OR]] || [[OR (SPC700) | OR]] || [[DECW]] || [[ASL (SPC700) | ASL]] || [[ASL (SPC700) | ASL]] || [[DEC (SPC700) | DEC]] || [[CMP (SPC700) | CMP]] || [[JMP (SPC700) | JMP]] | ||
|- | |- | ||
| 2x || CLRP || [[TCALL]] || SET1 || BBS || AND || AND || AND || AND || AND || AND || OR1 || ROL || ROL || PUSH || CBNE || BRA | | '''2x''' || [[CLRP]] || [[TCALL]] || [[SET1]] || [[BBS]] || [[AND (SPC700) | AND]] || [[AND (SPC700) | AND]] || [[AND (SPC700) | AND]] || [[AND (SPC700) | AND]] || [[AND (SPC700) | AND]] || [[AND (SPC700) | AND]] || [[OR1]] || [[ROL (SPC700) | ROL]] || [[ROL (SPC700) | ROL]] || [[PUSH]] || [[CBNE]] || [[BRA (SPC700) | BRA]] | ||
|- | |- | ||
| 3x || BMI || [[TCALL]] || CLR1 || BBC || AND || AND || AND || AND || AND || AND || INCW || ROL || ROL || INC || CMP || CALL | | '''3x''' || [[BMI (SPC700) | BMI]] || [[TCALL]] || [[CLR1]] || [[BBC]] || [[AND (SPC700) | AND]] || [[AND (SPC700) | AND]] || [[AND (SPC700) | AND]] || [[AND (SPC700) | AND]] || [[AND (SPC700) | AND]] || [[AND (SPC700) | AND]] || [[INCW]] || [[ROL (SPC700) | ROL]] || [[ROL (SPC700) | ROL]] || [[INC (SPC700) | INC]] || [[CMP (SPC700) | CMP]] || [[CALL]] | ||
|- | |- | ||
| 4x || SETP || [[TCALL]] || SET1 || BBS || EOR || EOR || EOR || EOR || EOR || EOR || AND1 || LSR || LSR || PUSH || TCLR1 || PCALL | | '''4x''' || [[SETP]] || [[TCALL]] || [[SET1]] || [[BBS]] || [[EOR (SPC700) | EOR]] || [[EOR (SPC700) | EOR]] || [[EOR (SPC700) | EOR]] || [[EOR (SPC700) | EOR]] || [[EOR (SPC700) | EOR]] || [[EOR (SPC700) | EOR]] || [[AND1]] || [[LSR (SPC700) | LSR]] || [[LSR (SPC700) | LSR]] || [[PUSH]] || [[TCLR1]] || [[PCALL]] | ||
|- | |- | ||
| 5x || BVC || [[TCALL]] || CLR1 || BBC || EOR || EOR || EOR || EOR || EOR || EOR || CMPW || LSR || LSR || MOV || CMP || JMP | | '''5x''' || [[BVC (SPC700) | BVC]] || [[TCALL]] || [[CLR1]] || [[BBC]] || [[EOR (SPC700) | EOR]] || [[EOR (SPC700) | EOR]] || [[EOR (SPC700) | EOR]] || [[EOR (SPC700) | EOR]] || [[EOR (SPC700) | EOR]] || [[EOR (SPC700) | EOR]] || [[CMPW]] || [[LSR (SPC700) | LSR]] || [[LSR (SPC700) | LSR]] || [[MOV]] || [[CMP (SPC700) | CMP]] || [[JMP (SPC700) | JMP]] | ||
|- | |- | ||
| 6x || CLRC || [[TCALL]] || SET1 || BBS || CMP || CMP || CMP || CMP || CMP || CMP || AND1 || ROR || ROR || PUSH || DBNZ || RET | | '''6x''' || [[CLRC]] || [[TCALL]] || [[SET1]] || [[BBS]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[AND1]] || [[ROR (SPC700) | ROR]] || [[ROR (SPC700) | ROR]] || [[PUSH]] || [[DBNZ]] || [[RET]] | ||
|- | |- | ||
| 7x || BVS || [[TCALL]] || CLR1 || BBC || CMP || CMP || CMP || CMP || CMP || CMP || ADDW || ROR || ROR || MOV || CMP || RETI | | '''7x''' || [[BVS (SPC700) | BVS]] || [[TCALL]] || [[CLR1]] || [[BBC]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[ADDW]] || [[ROR (SPC700) | ROR]] || [[ROR (SPC700) | ROR]] || [[MOV]] || [[CMP (SPC700) | CMP]] || [[RETI]] | ||
|- | |- | ||
| 8x || SETC || [[TCALL]] || SET1 || BBS || ADC || ADC || ADC || ADC || ADC || ADC || EOR1 || DEC || DEC || MOV || POP || MOV | | '''8x''' || [[SETC]] || [[TCALL]] || [[SET1]] || [[BBS]] || [[ADC (SPC700) | ADC]] || [[ADC (SPC700) | ADC]] || [[ADC (SPC700) | ADC]] || [[ADC (SPC700) | ADC]] || [[ADC (SPC700) | ADC]] || [[ADC (SPC700) | ADC]] || [[EOR1]] || [[DEC (SPC700) | DEC]] || [[DEC (SPC700) | DEC]] || [[MOV]] || [[POP]] || [[MOV]] | ||
|- | |- | ||
| 9x || BCC || [[TCALL]] || CLR1 || BBC || ADC || ADC || ADC || ADC || ADC || ADC || SUBW || DEC || DEC || MOV || DIV || XCN | | '''9x''' || [[BCC (SPC700) | BCC]] || [[TCALL]] || [[CLR1]] || [[BBC]] || [[ADC (SPC700) | ADC]] || [[ADC (SPC700) | ADC]] || [[ADC (SPC700) | ADC]] || [[ADC (SPC700) | ADC]] || [[ADC (SPC700) | ADC]] || [[ADC (SPC700) | ADC]] || [[SUBW]] || [[DEC (SPC700) | DEC]] || [[DEC (SPC700) | DEC]] || [[MOV]] || [[DIV]] || [[XCN]] | ||
|- | |- | ||
| Ax || EI || [[TCALL]] || SET1 || BBS || SBC || SBC || SBC || SBC || SBC || SBC || MOV1 || INC || INC || CMP || POP || MOV | | '''Ax''' || [[EI]] || [[TCALL]] || [[SET1]] || [[BBS]] || [[SBC (SPC700) | SBC]] || [[SBC (SPC700) | SBC]] || [[SBC (SPC700) | SBC]] || [[SBC (SPC700) | SBC]] || [[SBC (SPC700) | SBC]] || [[SBC (SPC700) | SBC]] || [[MOV1]] || [[INC (SPC700) | INC]] || [[INC (SPC700) | INC]] || [[CMP (SPC700) | CMP]] || [[POP]] || [[MOV]] | ||
|- | |- | ||
| Bx || BCS || [[TCALL]] || CLR1 || BBC || | | '''Bx''' || [[BCS (SPC700) | BCS]] || [[TCALL]] || [[CLR1]] || [[BBC]] || [[SBC (SPC700) | SBC]] || [[SBC (SPC700) | SBC]] || [[SBC (SPC700) | SBC]] || [[SBC (SPC700) | SBC]] || [[SBC (SPC700) | SBC]] || [[SBC (SPC700) | SBC]] || [[MOVW]] || [[INC (SPC700) | INC]] || [[INC (SPC700) | INC]] || [[MOV]] || [[DAS]] || [[MOV]] | ||
|- | |- | ||
| Cx || DI || [[TCALL]] || SET1 || BBS || MOV || MOV || MOV || MOV || CMP || MOV || MOV1 || MOV || MOV || MOV || POP || MUL | | '''Cx''' || [[DI]] || [[TCALL]] || [[SET1]] || [[BBS]] || [[MOV]] || [[MOV]] || [[MOV]] || [[MOV]] || [[CMP (SPC700) | CMP]] || [[MOV]] || [[MOV1]] || [[MOV]] || [[MOV]] || [[MOV]] || [[POP]] || [[MUL]] | ||
|- | |- | ||
| Dx || BNE || [[TCALL]] || CLR1 || BBC || MOV || MOV || MOV || MOV || MOV || MOV || MOVW || MOV || DEC || MOV || CBNE || DAA | | '''Dx''' || [[BNE (SPC700) | BNE]] || [[TCALL]] || [[CLR1]] || [[BBC]] || [[MOV]] || [[MOV]] || [[MOV]] || [[MOV]] || [[MOV]] || [[MOV]] || [[MOVW]] || [[MOV]] || [[DEC (SPC700) | DEC]] || [[MOV]] || [[CBNE]] || [[DAA]] | ||
|- | |- | ||
| Ex || CLRV || [[TCALL]] || SET1 || BBS || MOV || MOV || MOV || MOV || MOV || MOV || NOT1 || MOV || MOV || NOTC || POP || SLEEP | | '''Ex''' || [[CLRV]] || [[TCALL]] || [[SET1]] || [[BBS]] || [[MOV]] || [[MOV]] || [[MOV]] || [[MOV]] || [[MOV]] || [[MOV]] || [[NOT1]] || [[MOV]] || [[MOV]] || [[NOTC]] || [[POP]] || [[SLEEP]] | ||
|- | |- | ||
| Fx || BEQ || [[TCALL]] || CLR1 || BBC || MOV || MOV || MOV || MOV || MOV || MOV || MOV || MOV || INC || MOV || DBNZ || STOP | | '''Fx''' || [[BEQ (SPC700) | BEQ]] || [[TCALL]] || [[CLR1]] || [[BBC]] || [[MOV]] || [[MOV]] || [[MOV]] || [[MOV]] || [[MOV]] || [[MOV]] || [[MOV]] || [[MOV]] || [[INC (SPC700) | INC]] || [[MOV]] || [[DBNZ]] || [[STOP (SPC700)|STOP]] | ||
|} | |} | ||
Unlike the NMOS 6502, the [[SPC700]] has no illegal/undocumented opcodes. | |||
=== See Also === | |||
* [[65c816 Opcode Matrix]] | |||
* [[Super FX Opcode Matrices]] | |||
[[Category:ASM]] | [[Category:ASM]] | ||
[[Category:SPC700]] | [[Category:SPC700]] | ||
[[Category:Tables]] |
Latest revision as of 21:33, 12 July 2024
Unlike the NMOS 6502, the SPC700 has no illegal/undocumented opcodes.