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
Jump to: navigation, search
(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 || SMC || SBC || SBC || SBC || SMC || 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 || 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