1 ; Compile me using "rmac -l6502tester.lst 6502tester.s" and open
2 ; 6502tester.lst to see and compare the output opcodes
11 ADC #$44 ;$69 2 Immediate
12 ADC $44 ;$65 2 Zero Page
13 ADC $44,X ;$75 2 Zero Page,X
14 ADC $4400 ;$6D 3 Absolute
15 ADC $4400,X ;$7D 3 Absolute,X
16 ADC $4400,Y ;$79 3 Absolute,Y
17 ADC ($44,X) ;$61 2 Indirect,X
18 ADC ($44),Y ;$71 2 Indirect,Y
20 ;AND (bitwise AND with accumulator)
23 AND #$44 ;$29 2 Immediate
24 AND $44 ;$25 2 Zero Page
25 AND $44,X ;$35 2 Zero Page,X
26 AND $4400 ;$2D 3 Absolute
27 AND $4400,X ;$3D 3 Absolute,X
28 AND $4400,Y ;$39 3 Absolute,Y
29 AND ($44,X) ;$21 2 Indirect,X
30 AND ($44),Y ;$31 2 Indirect,Y
32 ;ASL (Arithmetic Shift Left)
35 ASL ;$0A 1 Accumulator (Implied)
36 ASL $44 ;$06 2 Zero Page
37 ASL $44,X ;$16 2 Zero Page,X
38 ASL $4400 ;$0E 3 Absolute
39 ASL $4400,X ;$1E 3 Absolute,X
44 BIT $44 ;$24 2 Zero Page
45 BIT $4400 ;$2C 3 Absolute
50 BPL label ;$10 (Branch on PLus)
51 BMI label ;$30 (Branch on MInus)
52 BVC label ;$50 (Branch on oVerflow Clear)
53 BVS label ;$70 (Branch on oVerflow Set)
54 BCC label ;$90 (Branch on Carry Clear)
55 BCS label ;$B0 (Branch on Carry Set)
56 BNE label ;$D0 (Branch on Not Equal)
57 BEQ label ;$F0 (Branch on EQual)
60 ; SYNTAX HEX LEN ;MODE
63 ;CMP (CoMPare accumulator)
66 CMP #$44 ;$C9 2 Immediate
67 CMP $44 ;$C5 2 Zero Page
68 CMP $44,X ;$D5 2 Zero Page,X
69 CMP $4400 ;$CD 3 Absolute
70 CMP $4400,X ;$DD 3 Absolute,X
71 CMP $4400,Y ;$D9 3 Absolute,Y
72 CMP ($44,X) ;$C1 2 Indirect,X
73 CMP ($44),Y ;$D1 2 Indirect,Y
75 ;CPX (ComPare X register)
78 CPX #$44 ;$E0 2 Immediate
79 CPX $44 ;$E4 2 Zero Page
80 CPX $4400 ;$EC 3 Absolute
82 ;CPY (ComPare Y register)
85 CPY #$44 ;$C0 2 Immediate
86 CPY $44 ;$C4 2 Zero Page
87 CPY $4400 ;$CC 3 Absolute
89 ;DEC (DECrement memory)
92 DEC $44 ;$C6 2 Zero Page
93 DEC $44,X ;$D6 2 Zero Page,X
94 DEC $4400 ;$CE 3 Absolute
95 DEC $4400,X ;$DE 3 Absolute,X
97 ;EOR (bitwise Exclusive OR)
100 EOR #$44 ;$49 2 Immediate
101 EOR $44 ;$45 2 Zero Page
102 EOR $44,X ;$55 2 Zero Page,X
103 EOR $4400 ;$4D 3 Absolute
104 EOR $4400,X ;$5D 3 Absolute,X
105 EOR $4400,Y ;$59 3 Absolute,Y
106 EOR ($44,X) ;$41 2 Indirect,X
107 EOR ($44),Y ;$51 2 Indirect,Y
109 ;Flag (Processor Status) Instructions
112 CLC ;(CLear Carry) $18
114 CLI ;(CLear Interrupt) $58
115 SEI ;(SEt Interrupt) $78
116 CLV ;(CLear oVerflow) $B8
117 CLD ;(CLear Decimal) $D8
118 SED ;(SEt Decimal) $F8
120 ;INC (INCrement memory)
122 ; SYNTAX HEX LEN MODE
123 INC $44 ;$E6 2 ;Zero Page
124 INC $44,X ;$F6 2 ;Zero Page,X
125 INC $4400 ;$EE 3 ;Absolute
126 INC $4400,X ;$FE 3 ;Absolute,X
130 ; SYNTAX HEX LEN MODE
131 JMP $5597 ;$4C 3 Absolute
132 JMP ($5597) ;$6C 3 Indirect
134 ;JSR (Jump to SubRoutine)
136 ; SYNTAX HEX LEN MODE
137 JSR $5597 ;$20 3 Absolute
139 ;LDA (LoaD Accumulator)
141 ; SYNTAX HEX LEN MODE
142 LDA #$44 ;$A9 2 Immediate
143 LDA $44 ;$A5 2 Zero Page
144 LDA $44,X ;$B5 2 Zero Page,X
145 LDA $4400 ;$AD 3 Absolute
146 LDA $4400,X ;$BD 3 Absolute,X
147 LDA $4400,Y ;$B9 3 Absolute,Y
148 LDA ($44,X) ;$A1 2 Indirect,X
149 LDA ($44),Y ;$B1 2 Indirect,Y
151 ;LDX (LoaD X register)
153 ; SYNTAX HEX LEN MODE
154 LDX #$44 ;$A2 2 Immediate
155 LDX $44 ;$A6 2 Zero Page
156 LDX $44,Y ;$B6 2 Zero Page,Y
157 LDX $4400 ;$AE 3 Absolute
158 LDX $4400,Y ;$BE 3 Absolute,Y
160 ;LDY (LoaD Y register)
162 ; SYNTAX HEX LEN MODE
163 LDY #$44 ;$A0 2 Immediate
164 LDY $44 ;$A4 2 Zero Page
165 LDY $44,X ;$B4 2 Zero Page,X
166 LDY $4400 ;$AC 3 Absolute
167 LDY $4400,X ;$BC 3 Absolute,X
169 ;LSR (Logical Shift Right)
171 ; SYNTAX HEX LEN MODE
172 LSR ;$4A 1 Accumulator (Implied)
173 LSR $44 ;$46 2 Zero Page
174 LSR $44,X ;$56 2 Zero Page,X
175 LSR $4400 ;$4E 3 Absolute
176 LSR $4400,X ;$5E 3 Absolute,X
180 ; SYNTAX HEX LEN MODE
183 ;ORA (bitwise OR with Accumulator)
185 ; SYNTAX HEX LEN MODE
186 ORA #$44 ;$09 2 Immediate
187 ORA $44 ;$05 2 Zero Page
188 ORA $44,X ;$15 2 Zero Page,X
189 ORA $4400 ;$0D 3 Absolute
190 ORA $4400,X ;$1D 3 Absolute,X
191 ORA $4400,Y ;$19 3 Absolute,Y
192 ORA ($44,X) ;$01 2 Indirect,X
193 ORA ($44),Y ;$11 2 Indirect,Y
195 ;Register Instructions
198 TAX ;(Transfer A to X) $AA
199 TXA ;(Transfer X to A) $8A
200 DEX ;(DEcrement X) $CA
201 INX ;(INcrement X) $E8
202 TAY ;(Transfer A to Y) $A8
203 TYA ;(Transfer Y to A) $98
204 DEY ;(DEcrement Y) $88
205 INY ;(INcrement Y) $C8
209 ; SYNTAX HEX LEN MODE
210 ROL ;$2A 1 Accumulator (Implied)
211 ROL $44 ;$26 2 Zero Page
212 ROL $44,X ;$36 2 Zero Page,X
213 ROL $4400 ;$2E 3 Absolute
214 ROL $4400,X ;$3E 3 Absolute,X
218 ; SYNTAX HEX LEN MODE
219 ROR ;$6A 1 Accumulator (Implied)
220 ROR $44 ;$66 2 Zero Page
221 ROR $44,X ;$76 2 Zero Page,X
222 ROR $4400 ;$6E 3 Absolute
223 ROR $4400,X ;$7E 3 Absolute,X
225 ;RTI (ReTurn from Interrupt)
227 ; SYNTAX HEX LEN MODE
230 ;RTS (ReTurn from Subroutine)
232 ; SYNTAX HEX LEN MODE
235 ;SBC (SuBtract with Carry)
237 ; SYNTAX HEX LEN MODE
238 SBC #$44 ;$E9 2 Immediate
239 SBC $44 ;$E5 2 Zero Page
240 SBC $44,X ;$F5 2 Zero Page,X
241 SBC $4400 ;$ED 3 Absolute
242 SBC $4400,X ;$FD 3 Absolute,X
243 SBC $4400,Y ;$F9 3 Absolute,Y
244 SBC ($44,X) ;$E1 2 Indirect,X
245 SBC ($44),Y ;$F1 2 Indirect,Y
247 ;STA (STore Accumulator)
249 ; SYNTAX HEX LEN MODE
250 STA $44 ;$85 2 Zero Page
251 STA $44,X ;$95 2 Zero Page,X
252 STA $4400 ;$8D 3 Absolute
253 STA $4400,X ;$9D 3 Absolute,X
254 STA $4400,Y ;$99 3 Absolute,Y
255 STA ($44,X) ;$81 2 Indirect,X
256 STA ($44),Y ;$91 2 Indirect,Y
260 TXS ;(Transfer X to Stack ptr) $9A
261 TSX ;(Transfer Stack ptr to X) $BA
262 PHA ;(PusH Accumulator) $48
263 PLA ;(PuLl Accumulator) $68
264 PHP ;(PusH Processor status) $08
265 PLP ;(PuLl Processor status) $28
267 ;STX (STore X register)
269 ; SYNTAX HEX LEN MODE
270 STX $44 ;$86 2 ;Zero Page
271 STX $44,Y ;$96 2 ;Zero Page,Y
272 STX $4400 ;$8E 3 ;Absolute
274 ;STY (STore Y register)
276 ; SYNTAX HEX LEN MODE
277 STY $44 ;$84 2 ;Zero Page
278 STY $44,X ;$94 2 ;Zero Page,X
279 STY $4400 ;$8C 3 ;Absolute