Dostępne rozkazy 6502
LDA LDX LDY STA STX STY ADC AND
ASL SBC JSR JMP LSR ORA CMP CPY
CPX DEC INC EOR ROL ROR BRK CLC
CLI CLV CLD PHP PLP PHA PLA RTI
RTS SEC SEI SED INY INX DEY DEX
TXA TYA TXS TAY TAX TSX NOP BPL
BMI BNE BCC BCS BEQ BVC BVS BIT
Dostępne nielegalne rozkazy 6502
ASO RLN LSE RRD SAX LAX DCP ISB
ANC ALR ARR ANE ANX SBX LAS SHA
SHS SHX SHY NPO CIM
Dostępne rozkazy 65816
Oczywiście dostępne są rozkazy 6502, a oprócz nich:
STZ SEP REP TRB TSB BRA COP MVN
MVP PEA PHB PHD PHK PHX PHY PLB
PLD PLX PLY RTL STP TCD TCS TDC
TSC TXY TYX WAI WDM XBA XCE INA
DEA BRL JSL JML
Rozszerzanie mnemonika
Możliwe jest użycie rozszerzenia mnemonika w stylu XASM a:
z:
r:
np.:
XASM MADS
lda a:0 lda.a 0
ldx z:0 lda.z 0
org r:$40 org $40,*
Możliwe jest użycie rozszerzenia mnemonika po znaku kropki .
dla rozkazów typu LDA
LDX
LDY
STA
STX
STY
:
.b lub .z BYTE
.a lub .w lub .q WORD
.t lub .l TRIPLE, LONG (24bit)
np.
lda.w #$00 ; A9 00 00
lda #$80 ; A9 80
stx.w $f2 ; 8E F2 00
Wyjątki stanowią rozkazy n/w, którym nie można zmienić rozmiaru rejestru w adresowaniu absolutnym (niektóre assemblery nie wymagają dla tych rozkazów podania znaku #
, jednak MADS wymaga tego):
-
#$xx
dlaSEP
REP
COP
-
#$xxxx
dlaPEA
Innym wyjątkiem jest tryb adresowania pośredni długi, który reprezentowany jest przez nawiasy kwadratowe []
. Jak wiemy tego typu nawiasy wykorzystywane są też do obliczania wyrażeń, jednak jeśli asembler napotka pierwszy znak [
uzna to za tryb adresowania pośredni długi i jeśli nie zasygnalizowaliśmy chęci używania 65816 wystąpi błąd z komunikatem Illegal adressing mode. Aby oszukać assembler wystarczy dać przed kwadratowym nawiasem otwierającym [
znak +
.
lda [2+4] ; lda [6]
lda +[2+4] ; lda 6