quickdev16/files/docs/snes/65816/instruct.txt
2016-02-15 17:42:39 +01:00

198 lines
9.7 KiB
Plaintext

Table 5. Arithmetic and Logical Instructions
Mne- Operation Addressing Mode Status
monic M/X E=1 or E = 0 and dir, dir, (dir) (dir, (dir) [dir] abs abs, abs, absl absl d,s (d,s)
E=0 and M/X=1 M/X = 0 Immed Accu dir x y x) ,y x y ,x ,y N V M X D I Z C
ADC Pm AL + B + Pc -> AL A + W + Pc -> A 69 65 75 72 61 71 67 6D 7D 79 6F 7F 63 73 N V . . . . Z C
AND Pm AL /\B -> AL A /\W -> A 29 25 35 32 21 31 27 2D 3D 39 2F 3F 23 33 N . . . . . Z .
ASL Pm Pc <-B <- 0 Pc <- W <- 0 0A 06 16 0E 1E N . . . . . Z C
BIT Pm AL /\B A /\W 89 24 34 2C 3C N V . . . . Z .
CMP Pm AL - B A - W C9 C5 D5 D2 C1 D1 C7 CD DD D9 CF DF C3 D3 N . . . . . Z C
CPX Px XL - B X - W E0 E4 EC N . . . . . Z C
CPY Px YL - B Y - W C0 C4 CC N . . . . . Z C
DEC Pm B - 1 -> B W - 1 -> W 3A C6 D6 CE DE N . . . . . Z .
EOR Pm AL V- B -> AL A V- W -> A 49 45 55 52 41 51 47 4D 5D 59 4F 5F 43 53 N . . . . . Z .
INC Pm B + 1 -> B W + 1 -> W 1A E6 F6 EE FE N . . . . . Z .
LDA Pm B -> AL W -> A A9 A5 B5 B2 A1 B1 B7 AD BD B9 AF BF A3 B3 N . . . . . Z .
LDX Px B -> XL W -> X A2 A6 B6 AE BE N . . . . . Z .
LDY Px B -> YL W -> Y A0 A4 B4 AC BC N . . . . . Z .
LSR Pm 0 -> B -> Pc 0 -> W -> Pc 4A 46 56 4E 5E 0 . . . . . Z C
ORA Pm AL V B -> AL A V W -> A 09 05 15 12 01 11 17 0D 1D 19 0F 1F 03 13 N . . . . . Z .
ROL Pm Pc <- B <- Pc Pc <- W <- Pc 2A 26 36 2E 3E N . . . . . Z C
ROR Pm Pc -> B -> Pc Pc -> W -> Pc 6A 66 76 6E 7E N . . . . . Z C
SBC Pm AL - B - Pc -> AL A - W - Pc -> A E9 E5 F5 F2 E1 F1 F7 ED FD F9 EF FF E3 F3 N V . . . . Z C
STA Pm AL -> B A -> W 85 95 92 81 91 97 8D 9D 99 8F 9F 83 93 . . . . . . . .
STX Px XL -> B X -> W 86 96 8E . . . . . . . .
STY Px YL -> B Y -> W 84 94 8C . . . . . . . .
STZ Pm 0 -> B 0 -> W 64 74 9C 9E . . . . . . . .
TRB Pm /AL /\ B -> B /A /\ W -> W 14 1C . . . . . . Z .
TSB Pm AL V B -> B A V W -> W 04 0C . . . . . . Z .
V logical OR B byte per effective address
/\ logical AND W word per effective address
V- logical exclusive OR r relative offset
+ arithmetic addition A Accumulator, AL low half of Accumulator
- arithmetic subtraction X Index Register, XL low half of X register
!= not equal Y Index Register, YL low half of Y register
. status bit not affected Pc carry bit
/ negation M/X effective mode bit in Status Register (Pm or Px)
Ws word per stack pointer
Bs byte per stack pointer
Notes:
BIT instruction does not affect N and V flags when using immediate
addressing mode. When using other addressing modes, the N and V flags
are respectively set to bits 7 and 6 or 15 and 14 of the addressed memory
depending on mode (byte or word).
For all Read/Modify/Write instruction addressing modes except accumulator
Add 2 cycles for E=1 or E=0 and Pm=1 (8-bit mode)
Add 3 cycles for E=0 and Pm=0 (16-bit mode).
Add one cycle when indexing across page boundary and E=1 except for STA and
STZ instructions.
If E=1 then 1 -> SH and XL -> SL If E=0 then X -> S regardless of Pm or Px.
Exchanges the carry (Pc) and E bits. Whenever the E bit is set the following
registers and status bits are locked into the indicated state:
XH=0, YH=0, SH=1, Pm=1, Px=1.
Add 1 cycle if branch is taken. In Emulation (E= 1 ) mode only --add 1 cycle
if the branch is taken and crosses a page boundary.
Add 1 cycle in Emulation mode (E=1) for (dir),y; abs,x; and abs,y addressing
modes.
With TSB and TRB instruction, the Z flag is set or cleared by the result
of AAB or AAW.
For all Read/Modify/Write instruction addressing modes except accumulator --
Add 2 cycles for E=1 or E=0 and Pm=1 (8-bit mode)
Add 3 cycles for E=0 and Pm=0 (16-bit mode).
Table 6. Branch, Transter, Push, Pull, and Implied Addressing Mode Instructions
Operation Operation Status
Mnemonic Bytes M/X Cycles 8 Bit Cycles 16 Bit Implied Stack Relative N V M X D I Z C Mnemonic
BCC (6) 2 - 2 PC+r -> PC 2 PC+r -> PC 90 . . . . . . . . BCC
BCS (6) 2 - 2 PC+r -> PC 2 PC+r -> PC B0 . . . . . . . . BCS
BEQ (6) 2 - 2 PC+r -> PC 2 PC+r -> PC F0 . . . . . . . . BEQ
BMI (6) 2 - 2 PC+r -> PC 2 PC+r -> PC 30 . . . . . . . . BMI
BNE (6) 2 - 2 PC+r -> PC 2 PC+r -> PC D0 . . . . . . . . BNE
BPL (6) 2 - 2 PC+r -> PC 2 PC+r -> PC 10 . . . . . . . . BPL
BRA (6) 2 - 2 PC+r -> PC 2 PC+r -> PC 80 . . . . . . . . BRA
BVC (6) 2 - 2 PC+r -> PC 2 PC+r -> PC 50 . . . . . . . . BVC
BVS (6) 2 - 2 PC+r -> PC 2 PC+r -> PC 70 . . . . . . . . BVS
CLC 1 - 2 0 -> Pc 2 0 -> Pc 18 . . . . . . . 0 CLC
CLD 1 - 2 0 -> Pd 2 0 -> Pd D8 . . . . 0 . . . CLD
CLI 1 - 2 0 -> Pi 2 0 -> Pi 58 . . . . . 0 . . CLI
CLV 1 - 2 0 -> Pv 2 O -> Pv B8 . 0 . . . . . . CLV
DEX 1 Px 2 XL - 1 -> XL 2 X - 1 -> X CA N . . . . . Z . DEX
DEY 1 Px 2 YL - 1 -> YL 2 Y - 1 ->Y 88 N . . . . . Z . DEY
INX 1 Px 2 XL + 1 -> XL 2 X + 1 -> X E8 N . . . . . Z . INX
INY 1 Px 2 YL + 1 -> YL 2 Y + 1 -> Y C8 N . . . . . Z . INY
NOP 1 - 2 no operation 2 no operation EA . . . . . . . . NOP
PEA 3 - 5 W->Ws, S-2 ->S 5 same F4 . . . . . . . . PEA
PEI 2 - 6 W->Ws, S-2 ->S 6 same D4 . . . . . . . . PEI
PER 3 - 6 W ->Ws, S-2 ->S 6 same 62 . . . . . . . . PER
PHA 1 Pm 3 AL->Bs, S-1 ->S 4 A ->Ws, S-2 ->S 48 . . . . . . . . PHA
PHB 1 - 3 DB->Bs, S-1 ->S 3 same 8B . . . . . . . . PHB
PHD 1 - 4 D ->Ws, S-2 ->S 4 same OB . . . . . . . . PHD
PHK 1 - 3 PB->Bs, S-1 ->S same 4B . . . . . . . . PHK
PHP 1 - 3 P ->Bs, S-1 ->S 3 same 08 . . . . . . . . PHP
PHX 1 Px 3 XL->Bs, S-1 ->S 4 X-Ws, S-2 -> S DA . . . . . . . . PHX
PHY 1 Px 3 YL->Bs, S-1 ->S 4 Y ->Ws, S-2 ->S 5A . . . . . . . . PHY
PLA 1 Pm 4 S+1 ->S, Bs -> AL 5 S+2 ->S, Ws->A 68 N . . . . . Z . PLA
PLB 1 - 4 S+1 ->S, Bs -> DB 4 same AB N . . . . . Z . PLB
PLD 1 - 5 S+2 ->S, Ws -> D 5 same 2B N . . . . . Z . PLD
PLP 1 - 4 S+1 ->S, Bs -> P 4 same 28 N V M X D I Z C PLP
PLX 1 Px 4 S+1 ->S, Bs -> XL 5 S+2 ->S, Ws->X FA N . . . . . Z . PLX
PLY 1 Px 4 S+1 ->S, Bs -> YL 5 S+2 ->S, Ws->Y 7A N . . . . . Z . PLY
SEC 1 - 2 1 -> Pc 2 1 -> Pc 38 . . . . . . . 1 SEC
SED 1 - 2 1 -> Pd 2 1 -> Pd F8 . . . . 1 . . . SED
SEI 1 - 2 1 -> Pi 2 1 -> Pi 78 . . . . . 1 . . SEI
TAX 1 Px 2 AL -> XL 2 A -> X AA N . . . . . Z . TAX
TAY 1 Px 2 AL -> YL 2 A -> Y A8 N . . . . . Z . TAY
TCD 1 - 2 A -> D 2 A -> D 5B N . . . . . Z . TCD
TCS 1 - 2 A -> S A -> S 1B . . . . . . . . TCS
TDC 1 - 2 D -> A 2 D -> A 7B N . . . . . Z . TDC
TSC 1 - 2 S -> A 2 S -> A 3B N . . . . . Z . TSC
TSX 1 Px 2 SL -> XL 2 S -> X BA N . . . . . Z . TSX
TXA 1 Pm 2 XL -> AL 2 X -> A 8A N . . . . . Z . TXA
TXS 1 - 2 see note 4 2 X -> S 9A . . . . . . . . TXS
TXY 1 Px 2 XL -> YL 2 X -> Y 9B N . . . . . Z . TXY
TYA 1 Pm 2 YL -> AL 2 Y -> A 98 N . . . . . Z . TYA
TYX 1 Px 2 YL -> XL 2 Y -> X BB N . . . . . Z . TYX
XCE 1 - 2 see note 5 2 see note 5 FB . . . . . . . C XCE
See Notes on page 13.
Table 7. Other Addressing Mode Instructions
Status
Mnemonic Addressing Mode Opcode Cycles Bytes N V M X D I Z C Mnemonic Function
BRK stack 00 7/8 2 . . . . 0 1 . . BRK See discussion in Interrupt Processing Sequence section.
BRL relative long 82 3 3 . . . . . . . . BRL PC+r -> PC where -32768 < r < 32767.
COP stack 02 7/8 2 . . . . 0 1 . . COP See discussion in Interrupt Processing Sequence section.
JML absolute indirect DC 6 3 JMLW -> PC, B-PB
JMP absolute 4C 3 3 . . . . . . . . JMP W -> PC
JMP absolute indirect 6C 5 3 . . . . . . . . JMP W -> PC
JMP absolute indexed indirect 7C 6 3 . . . . . . . . JMP W -> PC
JMP absolute long 5C 4 4 JMP W -> PC, B -> PB
JSL absolute long 22 8 4 . . . . . . . . JSL PB -> Bs, S-1 -S, PC -> Ws, S-2 -> S, W -> PC, B -> PB
JSR absolute 20 6 3 . . . . . . . JSR PC -> Ws, S-2 -> S, W -> PC
JSR absolute indexed indirect FC 6 3 . . . . . . . . JSR PC -> Ws, S-2 -> S, W -> PC
MVN block 54 7/byte 3 . . . . . . . . MVN See discussion in Addressing Mode section
MVP block 44 7/byte 3 . . . . . . . . MVP
REP immediate C2 3 2 N V M X D I Z C REP P /\ /B -> P
RTI stack 40 6/7 1 N V M X D I Z C RTI S+1 -> S, Bs -> P, S+2 -> S, Ws -> PC,
if E=0 then S+1 -> S, Bs -> PB
RTL stack 6B 6 1 . . . . . . . . RTL S+2 -> S, Ws~1 -> PC, S+1 -> S, Bs -> PB
RTS stack 60 6 1 . . . . . . . . RTS S+2 -> S, Ws+1 -> PC
SEP immediate E2 3 2 N V M X D I Z C SEP PVB -> P
STP implied DB 3+ 1 . . . . . . . . STP Stop the clock. Requires reset to continue.
WAI implied CB 3+ 1 . . . . . . . . WAI Wait for inte-rupt. RDY held low until Interrupt.
XBA implied EB 3 1 N . . . . . Z . XBA Swap AH and AL. Status bits reflect final condition of AL.
Notes on page 13.
16