[戻る]

6502

手作業で逆アセンブルする為にまとめたものです。

マシン語→ニーモニック対応表

6502 & 65C02

CMOS版6502の65C02にはいろいろなバリエーションがありますが、ここではApple ][シリーズで使用しているものを対象としています。
00BRK
01ORA (zpage,X)
02
03
04TSB zpage
05ORA zpage
06ASL zpage
07
08PHP
09ORA #imm
0AASL A
0B
0CTSB abs
0DORA abs
0EASL abs
0F
20JSR abs
21AND (zpage,X)
22
23
24BIT zpage
25AND zpage
26ROL zpage
27
28PLP
29AND #imm
2AROL A
2B
2CBIT abs
2DAND abs
2EROL abs
2F
40RTI
41EOR (zpage,X)
42
43
44
45EOR zpage
46LSR zpage
47
48PHA
49EOR #imm
4ALSR A
4B
4CJMP abs
4DEOR abs
4ELSR abs
4F
60RTS
61ADC (zpage,X)
62
63
64STZ zpage
65ADC zpage
66ROR zpage
67
68PLA
69ADC #imm
6AROR A
6B
6CJMP (abs)
6DADC abs
6EROR abs
6F
80BRA disp
81STA (zpage,X)
82
83
84STY zpage
85STA zpage
86STX zpage
87
88DEY
89BIT #imm
8ATXA
8B
8CSTY abs
8DSTA abs
8ESTX abs
8F
A0LDY #imm
A1LDA (zpage,X)
A2LDX #imm
A3
A4LDY zpage
A5LDA zpage
A6LDX zpage
A7
A8TAY
A9LDA #imm
AATAX
AB
ACLDY abs
ADLDA abs
AELDX abs
AF
C0CPY #imm
C1CMP (zpage,X)
C2
C3
C4CPY zpage
C5CMP zpage
C6DEC zpage
C7
C8INY
C9CMP #imm
CADEX
CB
CCCPY abs
CDCMP abs
CEDEC abs
CF
E0CPX #imm
E1SBC (zpage,X)
E2
E3
E4CPX zpage
E5SBC zpage
E6INC zpage
E7
E8INX
E9SBC #imm
EANOP
EB
ECCPX abs
EDSBC abs
EEINC abs
EF
10BPL disp
11ORA (zpage),Y
12ORA (zpage)
13
14TRB zpage
15ORA zpage,X
16ASL zpage,X
17
18CLC
19ORA abs,Y
1AINA
1B
1CTRB abs
1DORA abs,X
1EASL abs,X
1F
30BMI disp
31AND (zpage),Y
32AND (zpage)
33
34BIT zpage,X
35AND zpage,X
36ROL zpage,X
37
38SEC
39AND abs,Y
3ADEA
3B
3CBIT abs,X
3DAND abs,X
3EROL abs,X
3F
50BVC disp
51EOR (zpage),Y
52EOR (zpage)
53
54
55EOR zpage,X
56LSR zpage,X
57
58CLI
59EOR abs,Y
5APHY
5B
5C
5DEOR abs,X
5ELSR abs,X
5F
70BVS disp
71ADC (zpage),Y
72ADC (zpage)
73
74STZ zpage,X
75ADC zpage,X
76ROR zpage,X
77
78SEI
79ADC abs,Y
7APLY
7B
7CJMP (abs,X)
7DADC abs,X
7EROR abs,X
7F
90BCC disp
91STA (zpage),Y
92STA (zpage)
93
94STY zpage,X
95STA zpage,X
96STX zpage,Y
97
98TYA
99STA abs,Y
9ATXS
9B
9CSTZ abs
9DSTA abs,X
9ESTZ abs,X
9F
B0BCS disp
B1LDA (zpage),Y
B2LDA (zpage)
B3
B4LDY zpage,X
B5LDA zpage,X
B6LDX zpage,Y
B7
B8CLV
B9LDA abs,Y
BATSX
BB
BCLDY abs,X
BDLDA abs,X
BELDX abs,Y
BF
D0BNE disp
D1CMP (zpage),Y
D2CMP (zpage)
D3
D4
D5CMP zpage,X
D6DEC zpage,X
D7
D8CLD
D9CMP abs,Y
DAPHX
DB
DC
DDCMP abs,X
DEDEC abs,X
DF
F0BEQ disp
F1SBC (zpage),Y
F2SBC (zpage)
F3
F4
F5SBC zpage,X
F6INC zpage,X
F7
F8SED
F9SBC abs,Y
FAPLX
FB
FC
FDSBC abs,X
FEINC abs,X
FF
6502 & 65C02
65C02
[TOP]

6502 & 未定義命令

65C02との非互換により問題を引き起こすかもしれない命令。
ニーモニックにはバリエーションがあるようです。ここではAppleWinで使用している表記にあわせています。
00BRK
01ORA (zpage,X)
02HLT
03ASO (zpage,X)
04NOP zpage
05ORA zpage
06ASL zpage
07ASO zpage
08PHP
09ORA #imm
0AASL A
0BANC #imm
0CNOP abs
0DORA abs
0EASL abs
0FASO abs
20JSR abs
21AND (zpage,X)
22HLT
23RLA (zpage,X)
24BIT zpage
25AND zpage
26ROL zpage
27RLA zpage
28PLP
29AND #imm
2AROL A
2BANC #imm
2CBIT abs
2DAND abs
2EROL abs
2FRLA abs
40RTI
41EOR (zpage,X)
42HLT
43LSE (zpage,X)
44NOP zpage
45EOR zpage
46LSR zpage
47LSE zpage
48PHA
49EOR #imm
4ALSR A
4BALR #imm
4CJMP abs
4DEOR abs
4ELSR abs
4FLSE abs
60RTS
61ADC (zpage,X)
62HLT
63RRA (zpage,X)
64NOP zpage
65ADC zpage
66ROR zpage
67RRA zpage
68PLA
69ADC #imm
6AROR A
6BARR #imm
6CJMP (abs)
6DADC abs
6EROR abs
6FRRA abs
80NOP #imm
81STA (zpage,X)
82NOP #imm
83AXS (zpage,X)
84STY zpage
85STA zpage
86STX zpage
87AXS zpage
88DEY
89NOP #imm
8ATXA
8BXAA #imm
8CSTY abs
8DSTA abs
8ESTX abs
8FAXS abs
A0LDY #imm
A1LDA (zpage,X)
A2LDX #imm
A3LAX (zpage,X)
A4LDY zpage
A5LDA zpage
A6LDX zpage
A7LAX zpage
A8TAY
A9LDA #imm
AATAX
ABOAL #imm
ACLDY abs
ADLDA abs
AELDX abs
AFLAX abs
C0CPY #imm
C1CMP (zpage,X)
C2NOP #imm
C3DCM (zpage,X)
C4CPY zpage
C5CMP zpage
C6DEC zpage
C7DCM zpage
C8INY
C9CMP #imm
CADEX
CBSAX #imm
CCCPY abs
CDCMP abs
CEDEC abs
CFDCM abs
E0CPX #imm
E1SBC (zpage,X)
E2NOP #imm
E3INS (zpage,X)
E4CPX zpage
E5SBC zpage
E6INC zpage
E7INS zpage
E8INX
E9SBC #imm
EANOP
EBSBC #imm
ECCPX abs
EDSBC abs
EEINC abs
EFINS abs
10BPL disp
11ORA (zpage),Y
12HLT
13ASO (zpage),Y
14NOP zpage,X
15ORA zpage,X
16ASL zpage,X
17ASO zpage,X
18CLC
19ORA abs,Y
1ANOP
1BASO abs,Y
1CNOP abs,X
1DORA abs,X
1EASL abs,X
1FASO abs,X
30BMI disp
31AND (zpage),Y
32HLT
33RLA (zpage),Y
34NOP zpage,X
35AND zpage,X
36ROL zpage,X
37RLA zpage,X
38SEC
39AND abs,Y
3ANOP
3BRLA abs,Y
3CNOP abs,X
3DAND abs,X
3EROL abs,X
3FRLA zbs,X
50BVC disp
51EOR (zpage),Y
52HLT
53LSE (zpage),Y
54NOP zpage,X
55EOR zpage,X
56LSR zpage,X
57LSE zpage,X
58CLI
59EOR abs,Y
5ANOP
5BLSE abs,Y
5CNOP abs,X
5DEOR abs,X
5ELSR abs,X
5FLSE abs,X
70BVS disp
71ADC (zpage),Y
72HLT
73RRA (zpage),Y
74NOP zpage,X
75ADC zpage,X
76ROR zpage,X
77RRA zpage,X
78SEI
79ADC abs,Y
7ANOP
7BRRA abs,Y
7CNOP abs,X
7DADC abs,X
7EROR abs,X
7FRRA abs,X
90BCC disp
91STA (zpage),Y
92HLT
93AXA (zpage),Y
94STY zpage,X
95STA zpage,X
96STX zpage,Y
97AXS zpage,Y
98TYA
99STA abs,Y
9ATXS
9BTAS abs,Y
9CSAY abs,X
9DSTA abs,X
9EXAS abs,Y
9FAXA abs,Y
B0BCS disp
B1LDA (zpage),Y
B2HLT
B3LAX (zpage),Y
B4LDY zpage,X
B5LDA zpage,X
B6LDX zpage,Y
B7LAX zpage,Y
B8CLV
B9LDA abs,Y
BATSX
BBLAS abs,Y
BCLDY abs,X
BDLDA abs,X
BELDX abs,Y
BFLAX abs,Y
D0BNE disp
D1CMP (zpage),Y
D2HLT
D3DCM (zpage),Y
D4NOP zpage,X
D5CMP zpage,X
D6DEC zpage,X
D7DCM zpage,X
D8CLD
D9CMP abs,Y
DANOP
DBDCM abs,Y
DCNOP abs,X
DDCMP abs,X
DEDEC abs,X
DFDCM abs,X
F0BEQ disp
F1SBC (zpage),Y
F2HLT
F3INS (zpage),Y
F4NOP zpage,X
F5SBC zpage,X
F6INC zpage,X
F7INS zpage,X
F8SED
F9SBC abs,Y
FANOP
FBINS abs,Y
FCNOP abs,X
FDSBC abs,X
FEINC abs,X
FFINS abs,X
6502
6502未定義命令
[TOP]

ステータスレジスタ変化一覧

6502 & 65C02

ステータスレジスタが変化する命令『だけ』の一覧です。
命令ステータスレジスタ変化
NV-BDIZC
ADCadd to accumulator - - - -
ANDAND with accumulator - - - - - -
ASLarithmetic bit-shift left - - - - -
BITtest bits - - - - -
BRKsoftware interrupt - - - 1 - - - -
CLCclear carry flag - - - - - - - 0
CLDclear decimal mode flag - - - - 0 - - -
CLIclear interrupt disable flag - - - - - 0 - -
CLVclear overflow flag - 0 - - - - - -
CMPcompare with accumulator - - - - -
CPXcompare with X - - - - -
CPYcompare with Y - - - - -
DEAdecrement accumulator - - - - - -
DECdecrement memory - - - - - -
DEXdecrement X - - - - - -
DEYdecrement Y - - - - - -
EORExclusive-OR with accumulator - - - - - -
INAincrement accumulator - - - - - -
INCincrement memory - - - - - -
INXincrement X - - - - - -
INYincrement Y - - - - - -
JSRjump to subroutine - - - - - -
  
命令ステータスレジスタ変化
NV-BDIZC
LDAload accumulator - - - - - -
LDXload X - - - - - -
LDYload Y - - - - - -
LSRlogical bit-shift right 0 - - - - -
ORAOR with accumulator - - - - - -
PLApull accumulator from stack - - - - - -
PLPpull status from stack -
PLXpull X from stack - - - - - -
PLYpull Y from stack - - - - - -
ROLrotate left through carry - - - - -
RORrotate right through carry - - - - -
RTIreturn from interrupt -
SBCsubtract from accumulator - - - -
SECset carry flag - - - - - - - 1
SEDset decimal mode flag - - - - 1 - - -
SEIset interrupt disable flag - - - - - 1 - -
TAXtransfer accumulator to X - - - - - -
TAYtransfer accumulator to Y - - - - - -
TRBtest and reset with accumulator- - - - - - -
TSBtest and set with accumulator - - - - - - -
TSXtransfer stack pointer to X - - - - - -
TXAtransfer X to accumulator - - - - - -
TYAtransfer Y to accumulator - - - - - -
[TOP]

6502未定義命令

参照する資料により詳細が微妙に違っていたりします。要確認。
ニーモニックにはバリエーションがあるようです。ここではAppleWinで使用している表記にあわせています。
命令ステータスレジスタ変化
NV-BDIZC
ALRA = A AND immediate, A = shift right A - - - - -
ANCA = A AND immediate, C = N - - - - -
ARRA = A AND immediate, A = rotate right A - - - -
ASOmemory = shift left memory, A = A OR memory - - - - -
AXAmemory = A AND X AND (address.high + 1) - - - - - - - -
AXSmemory = A AND X - - - - - - - -
DCMmemory = memory - 1, compare A and memory - - - - -
HLThalt - - - - - - - -
INSmemory = memory + 1, A = A - memory - - - -
LASA = X = SP = memory AND SP - - - - - -
LAXA = X = memory - - - - - -
LSEmemory = shift right memory, A = A EOR memory - - - - -
NOPNOP - - - - - - - -
OALX = A = (A OR $EE) AND immediate - - - - - -
RLAmemory = rotate left memory, A = A AND memory - - - - -
RRAmemory = rotate right memory, A = A + C + memory- - - -
SAXX = (A AND X) - immediate - - - - -
SAYmemory = Y AND (address.high + 1) - - - - - - - -
SBCA = A - immediate - - - -
TASSP = A AND X, memory = SP AND (address.high + 1)- - - - - - - -
XAAA = X AND immediate - - - - - -
XASmemory = X AND (address.high + 1) - - - - - - - -
[TOP]
[戻る]