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 JMP) |
(bolded high nybble column) |
||
(18 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 (SPC700)|NOP]] || [[TCALL]] || [[SET1]] || [[BBS]] || OR || OR || OR || OR || OR || OR || [[OR1]] || ASL || ASL || [[PUSH]] || [[TSET1]] || [[BRK (SPC700) | 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 (SPC700) | CMP]] || [[JMP (SPC700) | 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 (SPC700) | 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 (SPC700) | CMP]] || [[JMP (SPC700) | 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 (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | 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 (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[CMP (SPC700) | CMP]] || [[ADDW]] || ROR || ROR || [[MOV]] || [[CMP (SPC700) | 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 (SPC700) | 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]] || SBC || SBC || SBC || SBC || SBC || SBC || [[MOVW]] || INC || INC || [[MOV]] || [[DAS]] || [[MOV]] | | '''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 (SPC700) | 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 (SPC700)|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 === | === See Also === | ||
* [[65c816 Opcode Matrix]] | * [[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.