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