65816指令一览表

操作码 助记符 寻址方式 指令长度 周期 备注
00 BRK 堆栈/中断寻址 2** 7 9
01 ORA 直接页面变址X间接寻址 2 6 1,2
02 COP 堆栈/中断寻址 2** 7 9
03 ORA 堆栈相对寻址 2 4 1
04 TSB 直接页面寻址 2 5 2,5
05 ORA 直接页面寻址 2 3 1,2
06 ASL 直接页面寻址 2 5 2,5
07 ORA 直接页面间接长程寻址 2 6 1,2
08 PHP 堆栈寻址(压栈) 1 3
09 ORA 直接寻址 2* 2 1
0A ASL 累加器寻址 1 2
0B PHD 堆栈寻址(压栈) 1 4
0C TSB 绝对寻址 3 6 5
0D ORA 绝对寻址 3 4 1
0E ASL 绝对寻址 3 6 5
0F ORA 绝对长程寻址 4 5 1
10 BPL 程序指针相对寻址 2 2 7,8
11 ORA 直接页面间接变址Y寻址 2 5 1,2,3
12 ORA 直接页面间接寻址 2 5 1,2
13 ORA 堆栈相对间接,变址Y寻址 2 7 1
14 TRB 直接页面寻址 2 5 2,5
15 ORA 直接页面变址X寻址 2 4 1,2
16 ASL 直接页面变址X寻址 2 6 2,5
17 ORA 直接页面间接长程,变址Y寻址 2 6 1,2
18 CLC 隐式寻址 1 2
19 ORA 绝对变址Y寻址 3 4 1,3
1A INC 累加器寻址 (INA) 1 2
1B TCS 隐式寻址 1 2
1C TRB 绝对寻址 3 6 5
1D ORA 绝对变址X寻址 3 4 1,3
1E ASL 绝对变址X寻址 3 7 5,6
1F ORA 绝对变址X长程寻址 4 5 1
20 JSR 绝对寻址 3 6
21 AND 直接页面变址X间接寻址 2 6 1,2
22 JSR 绝对长程寻址 4 8
23 AND 堆栈相对寻址 2 4 1
24 BIT 直接页面寻址 2 3 1,2
25 AND 直接页面寻址 2 3 1,2
26 ROL 直接页面寻址 2 5 2,5
27 AND 直接页面间接长程寻址 2 6 1,2
28 PLP 堆栈寻址 (压栈) 1 4
29 AND 直接寻址 2* 2 1
2A ROL 累加器寻址 1 2
2B PLD 堆栈寻址 (压栈) 1 5
2C BIT 绝对寻址 3 4 1
2D AND 绝对寻址 3 4 1
2E ROL 绝对寻址 3 6 5
2F AND 绝对长程寻址 4 5 1
30 BMI 程序指针相对寻址 2 2 7,8
31 AND 直接页面间接变址Y寻址 2 5 1,2,3
32 AND 直接页面间接寻址 2 5 1,1
33 AND 堆栈相对间接,Y变址寻址 2 7 1
34 BIT 直接页面变址X寻址 2 4 1,2
35 AND 直接页面变址X寻址 2 4 1,2
36 ROL 直接页面变址X寻址 2 6 2,5
37 AND 直接页面间接长程,变址Y寻址 2 6 1,2
38 SEC 隐式寻址 1 2
39 AND 绝对变址Y寻址 3 4 1,3
3A DEC 累加器寻址 1 2
3B TSC 隐式寻址 1 2
3C BIT 绝对变址X寻址 3 4 1,3
3D AND 绝对变址X寻址 3 4 1,3
3E ROL 绝对变址X寻址 3 7 5,6
3F AND 绝对变址X长程寻址 4 5 1
40 RTI 堆栈寻址/RTI 1 6 9
41 EOR 直接页面变址X间接寻址 2 6 1,2
42 WDM 2 16
43 EOR 堆栈相对寻址 2 4 1
44 MVP 区段移动 3

13
45 EOR 直接页面寻址 2 3 1,2
46 LSR 直接页面寻址 2 5 2,5
47 EOR 直接页面间接长程寻址 2 6 1,2
48 PHA 堆栈寻址 (压栈) 1 3 1
49 EOR 直接寻址 2* 2 1
4A LSR 累加器寻址 1 2
4B PHK 堆栈寻址 (压栈) 1 3
4C JMP 绝对寻址 3 3
4D EOR 绝对寻址 3 4 1
4E LSR 绝对寻址 3 6 5
4F EOR 绝对长程寻址 4 5 1
50 BVC 程序指针相对寻址 2 2 7,8
51 EOR 直接页面间接变址Y寻址 2 5 1,2,3
52 EOR 直接页面间接寻址 2 5 1,2
53 EOR 堆栈相对间接变址Y寻址 2 7 1
54 MVN 区段移动 3 13
55 EOR 直接页面变址X寻址 2 4 1,2
56 LSR 直接页面变址X寻址 2 6 2,5
57 EOR 直接页面间接长程,变址Y寻址 2 6 1,2
58 CLI 隐式寻址 1 2
59 EOR 绝对变址Y寻址 3 4 1,3
5A PHY 堆栈寻址 (压栈) 1 3 10
5B TCD 隐式寻址 1 2
5C JMP 绝对长程寻址 4 4
5D EOR 绝对变址X寻址 3 4 1,3
5E LSR 绝对变址X寻址 3 7 5,6
5F EOR 绝对变址X长程寻址 4 5 1
60 RTS 堆栈寻址 (RTS) 1 6
61 ADC 直接页面变址X间接寻址 2 6 1,2,4
62 PER 堆栈寻址 (程序指针相对长程) 3 6
63 ADC 堆栈相对寻址 2 4 1,4
64 STZ 直接页面寻址 2 3 1,2
65 ADC 直接页面寻址 2 3 1,2,4
66 ROR 直接页面寻址 2 5 1
67 ADC 直接页面间接长程寻址 2 6 1,4
68 PLA 堆栈寻址 (压栈) 1 4 1
69 ADC 直接寻址 2* 2 1,4
6A ROR 累加器寻址 1 2
6B RTL 堆栈寻址 (RTL) 1 6
6C JMP 绝对间接寻址 3 5 11,12
6D ADC 绝对寻址 3 4 1,4
6E ROR 绝对寻址 3 6 5
6F ADC 绝对长程寻址 4 5 1,4
70 BVS 程序指针相对寻址 2 2 7,8
71 ADC 直接页面间接变址Y寻址 2 5 1,2,3,4
72 ADC 直接页面间接寻址 2 5 1,2,4
73 ADC 堆栈相对间接,变址Y寻址 2 7 1,4
74 STZ 直接页面变址X寻址 2 4 1,2
75 ADC 直接页面变址X寻址 2 4 1,2,4
76 ROR 直接页面变址X寻址 2 6 2,5
77 ADC 直接页面间接长程,变址Y寻址 2 6 1,2,4
78 SEI 隐式寻址 1 2
79 ADC 绝对变址Y寻址 3 4 1,3,4
7A PLY 堆栈寻址 (压栈) 1 4 10
7B TDC 隐式寻址 1 2
7C JMP 绝对变址间接寻址 3 6
7D ADC 绝对变址X寻址 3 4 1,3,4
7E ROR 绝对变址X寻址 3 7 5,6
7F ADC 绝对变址X长程寻址 4 5 1,4
80 BRA 程序指针相对寻址 2 3 8
81 STA 直接页面变址X间接寻址 2 6 1,2
82 BRL 程序指针相对长程寻址 3 4
83 STA 堆栈相对寻址 2 4 1
84 STY 直接页面寻址 2 3 2,10
85 STA 直接页面寻址 2 3 1,2
86 STX 直接页面寻址 2 3 2,10
87 STA 直接页面间接长程寻址 2 6 1,2
88 DEY 隐式寻址

1 2
89 BIT 直接寻址 2* 2 1
8A TXA 隐式寻址 1 2
8B PHB 堆栈 (压栈) 1 3
8C STY 绝对寻址 3 4 10
8D STA 绝对寻址 3 4 1
8E STX 绝对寻址 3 4 10
8F STA 绝对长程寻址 4 5 1
90 BCC 程序指针相对寻址 2 2 7,8
91 STA 直接页面间接变址Y寻址 2 6 1,2
92 STA 直接页面间接寻址 2 5 1,2
93 STA 堆栈相对间接,Y变址寻址 2 7 1
94 STY 直接页面变址X寻址 2 4 2,10
95 STA 直接页面变址X寻址 2 4 1,2
96 STX 直接页面变址Y寻址 2 4 2,10
97 STA 直接页面间接长程,变址Y寻址 2 6 1,2
98 TYA 隐式寻址 1 2
99 STA 绝对变址Y寻址 3 5 1
9A TXS 隐式寻址 1 2
9B TXY 隐式寻址 1 2
9C STZ 绝对寻址 3 4 1
9D STA 绝对变址X寻址 3 5 1
9E STZ 绝对变址X寻址 3 5 1
9F STA 绝对变址X长程寻址 4 5 1
A0 LDY 直接寻址 2+ 2 10
A1 LDA 直接页面变址X间接寻址 2 6 1,2
A2 LDX 直接寻址 2+ 2 10
A3 LDA 堆栈相对寻址 2 4 1
A4 LDY 直接页面寻址 2 3 2,10
A5 LDA 直接页面寻址 2 3 1,2
A6 LDX 直接页面寻址 2 3 2,10
A7 LDA 直接页面间接长程寻址 2 6 1,2
A8 TAY 隐式寻址 1 2
A9 LDA 直接寻址 2* 2 1
AA TAX 隐式寻址 1 2
AB PLB 堆栈寻址 (压栈) 1 4
AC LDY 绝对寻址 3 4 10
AD LDA 绝对寻址 3 4 1
AE LDX 绝对寻址 3 4 10
AF LDA 绝对长程寻址 4 5 1
B0 BCS 程序指针相对寻址 2 2 7,8
B1 LDA 直接页面间接变址Y寻址 2 5 1,2,3
B2 LDA 直接页面间接寻址 2 5 1,2
B3 LDA 堆栈相对间接,Y变址寻址 2 7 1
B4 LDY 直接页面变址X寻址 2 4 2,10
B5 LDA 直接页面变址X寻址 2 4 1,2
B6 LDX 直接页面变址Y寻址 2 4 2,10
B7 LDA 直接页面间接长程,变址Y寻址 2 6 1,2
B8 CLV 隐式寻址 1 2
B9 LDA 绝对变址Y寻址 3 4 1,3
BA TSX 隐式寻址 1 2
BB TYX 隐式寻址 1 2
BC LDY 绝对变址X寻址 3 4 3,10
BD LDA 绝对变址X寻址 3 4 1,3
BE LDX 绝对变址Y寻址 3 4 3,10
BF LDA 绝对变址X长程寻址 4 5 1
C0 CPY 直接寻址 2+ 2 10
C1 CMP 直接页面变址X间接寻址 2 6 1,2
C2 REP 直接寻址 2 3
C3 CMP 堆栈相对寻址 2 4 1
C4 CPY 直接页面寻址 2 3 2,10
C5 CMP 直接页面寻址 2 3 1,2
C6 DEC 直接页面寻址 2 5 2,5
C7 CMP 直接页面间接长程寻址 2 6 1,2
C8 INY 隐式寻址 1 2
C9 CMP 直接寻址 2* 2 1
CA DEX 隐式寻址 1 2
CB WAI 隐式寻址 1 3 15
CC CPY 绝对寻址 3 4 10
CD CMP 绝对寻址 3 4 1
CE DEC 绝对寻址 3 6 5
CF CMP 绝对长程寻址 4 5 1
D0 BNE 程序指针相对寻址 2 2 7,8


D1 CMP 直接页面间接变址Y寻址 2 5 1,2,3
D2 CMP 直接页面间接寻址 2 5 1,2
D3 CMP 堆栈相对间接,Y变址寻址 2 7 1
D4 PEI 堆栈寻址 (直接页面间接寻址) 2 6 2
D5 CMP 直接页面变址X寻址 2 4 1,2
D6 DEC 直接页面变址X寻址 2 6 2,5
D7 CMP 直接页面间接长程,变址Y寻址 2 6 1,2
D8 CLD 隐式寻址 1 2
D9 CMP 绝对变址Y寻址 3 4 1,3
DA PHX 堆栈寻址(压栈) 1 3 10
DB STP 隐式寻址 1 3 14
DC JMP 绝对间接长程寻址 3 6
DD CMP 绝对变址X寻址 3 4 1,3
DE DEC 绝对变址X寻址 3 7 5,6
DF CMP 绝对变址X长程寻址 4 5 1
E0 CPX 直接寻址 2+ 2 10
E1 SBC 直接页面变址X间接寻址 2 6 1,2,4
E2 SEP 直接寻址 2 3
E3 SBC 堆栈相对寻址 2 4 1,4
E4 CPX 直接页面寻址 2 3 2,10
E5 SBC 直接页面寻址 2 3 1,2,4
E6 INC 直接页面寻址 2 5
E7 SBC 直接页面间接长程寻址 2 6 1,2,4
E8 INX 隐式寻址 1 2
E9 SBC 直接寻址 2* 2
EA NOP 隐式寻址 1 2
EB XBA 隐式寻址 1 3
EC CPX 绝对寻址 3 4 10
ED SBC 绝对寻址 3 4 1,4
EE INC 绝对寻址 3 6 5
EF SBC 绝对长程寻址 4 5 1,4
F0 BEQ 程序指针相对寻址 2 2 7,8
F1 SBC 直接页面间接变址Y寻址 2 5 1,2,3,4
F2 SBC 直接页面间接寻址 2 5 1,2,4
F3 SBC 堆栈相对间接,Y变址寻址 2 7 1,4
F4 PEA 堆栈寻址 (绝对寻址) 3 5
F5 SBC 直接页面变址X寻址 2 4 1,2,4
F6 INC 直接页面变址Y寻址 2 6 2,5
F7 SBC 直接页面间接长程,变址Y寻址 2 6 1,2,4
F8 SED 隐式寻址 1 2
F9 SBC 绝对变址Y寻址 3 4 1,3,4
FA PLX 堆栈寻址 (压栈) 1 4 10
FB XCE 隐式寻址 1 2
FC JSR 绝对变址间接寻址 3 8
FD SBC 绝对变址X寻址 3 4 1,3,4
FE INC 绝对变址X寻址 3 7 5,6
FF SBC 绝对变址X长程寻址 4 5 1,4
* 1 如果m=0(16位内存/累加器)则增加1
** 操作码是1个字节,但是压入堆栈的程序指针的值是2个字节,因为有可选的签名字节
+ 如果x=0(16位变址寄存器)则增加1个字节
1 如果m=0(16位内存/累加器)则增加的1个周期
2 如果直接页面(零页面)寄存器的地位不是0(DL<>0)则增加一个周期
3 如果增加变址越过页面边界则增加 1个周期
4 如果处理器是65C02并且d=1(十进位模式。只有65C02下可用)则增加一个周期
5 如果m=0(16位内存/累加器)则增加2个周期
6 如果处理器65C02并且没有越过页面边界则减少一个周期
7 如果转移被捕获则增加1个周期
8 如果转移在6502,65C02,或65816/65082的模拟模式(e=1)下穿过页面边界则增加一个以上的周期
9 在65802/65816的原本模式(e=1)下增加1个周期
10

如果x=0(16位变址寄存器)则增加1个周期
11 如果处理器65C02则增加一个周期
12 在6502下:如果操作数的低端字节是$FF(比如操作数是$xxFF)会产生不正确的结果
13 每移动一个字节要7个周期
14 用3个周期来关闭处理器,需要增加周期来复位以重启处理器。
15 用3个周期来关闭处理器,需要增加周期来调用中断以重启处理器
16 字节和周期数受将来的处理器影响,因为WDM指令的操作码部分的长度可能会被扩展成2个字节。

相关文档
最新文档