Supported 65816 instructions

Due to legacy from xkas, Asar's MVN and MVP instructions are backwards from most other assemblers: the syntax is MVN dest, src. Also, a 16-bit argument like MVN $ssdd (where $ss is source, $dd is destination) is accepted too (edit: not in asar2 it isn't).

All other instructions use syntax recommended by WDC, with some additional liberties:

  • for accumulator-addressed instructions (inc a etc), the a argument can be omitted.
  • cop, brk and wdm are assembled as 2-byte instructions, with with the second byte being optional and defaulting to zero.
ADC #$00 ADC #$0000 ADC $00 ADC $00,s ADC $00,x ADC $0000 ADC $0000,x ADC $0000,y ADC $000000 ADC $000000,x ADC ($00) ADC ($00),y ADC ($00,s),y ADC ($00,x) ADC [$00] ADC [$00],y AND #$00 AND #$0000 AND $00 AND $00,s AND $00,x AND $0000 AND $0000,x AND $0000,y AND $000000 AND $000000,x AND ($00) AND ($00),y AND ($00,s),y AND ($00,x) AND [$00] AND [$00],y ASL $00 ASL $00,x ASL $0000 ASL $0000,x ASL A BCC $00 BCS $00 BEQ $00 BIT #$00 BIT #$0000 BIT $00 BIT $00,x BIT $0000 BIT $0000,x BMI $00 BNE $00 BPL $00 BRA $00 BRK BRK #$00 BRL $0000 BVC $00 BVS $00 CLC CLD CLI CLV CMP #$00 CMP #$0000 CMP $00 CMP $00,s CMP $00,x CMP $0000 CMP $0000,x CMP $0000,y CMP $000000 CMP $000000,x CMP ($00) CMP ($00),y CMP ($00,s),y CMP ($00,x) CMP [$00] CMP [$00],y COP COP #$00 CPX #$00 CPX #$0000 CPX $00 CPX $0000 CPY #$00 CPY #$0000 CPY $00 CPY $0000 DEC $00 DEC $00,x DEC $0000 DEC $0000,x DEC A DEX DEY EOR #$00 EOR #$0000 EOR $00 EOR $00,s EOR $00,x EOR $0000 EOR $0000,x EOR $0000,y EOR $000000 EOR $000000,x EOR ($00) EOR ($00),y EOR ($00,s),y EOR ($00,x) EOR [$00] EOR [$00],y INC $00 INC $00,x INC $0000 INC $0000,x INC A INX INY JML $000000 JML [$0000] JMP $0000 JMP ($0000) JMP ($0000,x) JSL $000000 JSR $0000 JSR ($0000,x) LDA #$00 LDA #$0000 LDA $00 LDA $00,s LDA $00,x LDA $0000 LDA $0000,x LDA $0000,y LDA $000000 LDA $000000,x LDA ($00) LDA ($00),y LDA ($00,s),y LDA ($00,x) LDA [$00] LDA [$00],y LDX #$00 LDX #$0000 LDX $00 LDX $00,y LDX $0000 LDX $0000,y LDY #$00 LDY #$0000 LDY $00 LDY $00,x LDY $0000 LDY $0000,x LSR $00 LSR $00,x LSR $0000 LSR $0000,x LSR A MVN $00,$00 MVN $0000 MVP $00,$00 MVP $0000 NOP ORA #$00 ORA #$0000 ORA $00 ORA $00,s ORA $00,x ORA $0000 ORA $0000,x ORA $0000,y ORA $000000 ORA $000000,x ORA ($00) ORA ($00),y ORA ($00,s),y ORA ($00,x) ORA [$00] ORA [$00],y PEA $0000 PEI ($00) PER $0000 PHA PHB PHD PHK PHP PHX PHY PLA PLB PLD PLP PLX PLY REP #$00 ROL $00 ROL $00,x ROL $0000 ROL $0000,x ROL A ROR $00 ROR $00,x ROR $0000 ROR $0000,x ROR A RTI RTL RTS SBC #$00 SBC #$0000 SBC $00 SBC $00,s SBC $00,x SBC $0000 SBC $0000,x SBC $0000,y SBC $000000 SBC $000000,x SBC ($00) SBC ($00),y SBC ($00,s),y SBC ($00,x) SBC [$00] SBC [$00],y SEC SED SEI SEP #$00 STA $00 STA $00,s STA $00,x STA $0000 STA $0000,x STA $0000,y STA $000000 STA $000000,x STA ($00) STA ($00),y STA ($00,s),y STA ($00,x) STA [$00] STA [$00],y STP STX $00 STX $00,y STX $0000 STY $00 STY $00,x STY $0000 STZ $00 STZ $00,x STZ $0000 STZ $0000,x TAX TAY TCD TCS TDC TRB $00 TRB $0000 TSB $00 TSB $0000 TSC TSX TXA TXS TXY TYA TYX WAI WDM WDM #$00 XBA XCE