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 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