助记符  
 
[td] 
描述 
 
[td] 
表达式 
 
[td] 
标志  
 
 | 
 
读取(load)&储存(store)指令  
 
 | 
LDA  
[td]load accumulator将数据读入累加器  
[td]A<--M  
[td]NZ  
 | 
LDX  
[td]load X index将数据读入变址寄存器X  
[td]X<--M  
[td]NZ  
 | 
LDY  
[td]load Y index将数据读入变址寄存器Y  
[td]Y<--M  
[td]NZ  
 | 
STA  
[td]store accumulator储存累加器的数据  
[td]M<--A  
[td]-  
 | 
STX  
[td]store X index储存变址寄存器X的数据  
[td]M<--A  
[td]-  
 | 
STY  
[td]store Y index储存变址寄存器Y的数据  
[td]M<--A  
[td]-  
 | 
STZ  
[td]store zero储存零  
[td]M<--0  
[td]-  
 | 
 
堆栈操作  
 
 | 
PHA  
[td]push accumulator累加器入栈  
[td]Stack<--A  
[td]-  
 | 
PHX  
[td]push X index变址寄存器X入栈  
[td]Stack<--X  
[td]-  
 | 
PHY  
[td]push Y index变址寄存器Y入栈  
[td]Stack<--Y  
[td]-  
 | 
PHP  
[td]push processor flags 标志位P入栈  
[td]Stack<--P  
[td]-  
 | 
PLA  
[td]pull (pop) accumulator累加器出栈  
[td]A<--Stack  
[td]NZ  
 | 
PLX  
[td]pull (pop) X index变址寄存器X出栈  
[td]X<--Stack  
[td]NZ  
 | 
PLY  
[td]pull (pop) Y index变址寄存器Y出栈  
[td]Y<--Stack  
[td]NZ  
 | 
PLP  
[td]pull (pop) processor flags标志位P出栈  
[td]P<--Stack  
[td]All  
 | 
TSX  
[td]transfer stack pointer to X传送栈指针到X  
[td]X<--S  
[td]NZ  
 | 
TXS  
[td]transfer X to stack pointer传送X到栈指针  
[td]S<--X  
[td]-  
 | 
 
递增(increment)&递减(decrement)操作  
 
 | 
INA  
[td]increment accumulator累加器递增  
[td]A++  
[td]NZ  
 | 
INX  
[td]increment X index变址寄存器X递增  
[td]X++  
[td]NZ  
 | 
INY  
[td]increment Y index变址寄存器Y递增  
[td]Y++  
[td]NZ  
 | 
DEA  
[td]decrement accumulator累加器递减  
[td]A--  
[td]NZ  
 | 
DEX  
[td]decrement X index变址寄存器X递减  
[td]X--  
[td]NZ  
 | 
DEY  
[td]decrement Y index变址寄存器Y递减  
[td]Y--  
[td]NZ  
 | 
INC  
[td]increment memory location指定的内存单元递增  
[td]M++  
[td]NZ  
 | 
DEC  
[td]decrement memory location指定的内存单元递减  
[td]M--  
[td]NZ  
 | 
 
移位操作  
 
 | 
ASL  
[td]arithmetic shift left, high bit into carry算术左移,高位移入进位标志  
[td]C<--A7,A<--(A<<1)  
[td]NZC  
 | 
LSR  
[td]logical shift right, low bit into carry逻辑右移,低位移入进位标志  
[td]C<--A0,A<--(A>>1)  
[td]N=0 ZC  
 | 
ROL  
[td]rotate left through carry通过进位标志循环左移  
[td]C<--A7,A<--((A<<1)+C)  
[td]NZC  
 | 
ROR  
[td]rotate right through carry通过进位标志循环右移  
[td]C<--A0,A<--(A7=C+(A>>1))  
[td]NZC  
 | 
 
逻辑操作  
 
 | 
AND  
[td]and accumulator与累加器  
[td]A<--A&M  
[td]NZ  
 | 
ORA  
[td]or accumulator或累加器  
[td]A<--A|M  
[td]NZ  
 | 
EOR  
[td]exclusive-or accumulator异或累加器  
[td]A<--A^M  
[td]NZ  
 | 
BIT  
[td]test bits against accumulator测试累加器的某个位 (1)  
[td]Z<--!(A&M),N<--M7,V<--M6  
[td]N=M7 V=M6 Z  
 | 
CMP  
[td]compare with accumulator与累加器比较  
[td]A-M-->NZC  
[td]NZC  
 | 
CPX  
[td]compare with X index与X变址寄存器比较  
[td]X-M-->NZC  
[td]NZC  
 | 
CPY  
[td]compare with Y index与Y变址寄存器比较  
[td]Y-M-->NZC  
[td]NZC  
 | 
TRB  
[td]test and reset bits对位进行测试和清除  
[td] 
[td]x  
 | 
TSB  
[td]test and set bits对位进行测试和设置  
[td] 
[td]x  
 | 
RMB  
[td]reset memory bit对内存位进行清除  
[td] 
[td]x  
 | 
SMB  
[td]set memory bit对内存位进行设置  
[td] 
[td]x  
 | 
 
算术操作  
 
 | 
ADC  
[td]add accumulator, with carry加累加器(带进位)  
[td]A<--A+M+C  
[td]NZCV  
 | 
SBC  
[td]subtract accumulator, with borrow减累加器(带借位)  
[td]A<--A-M-~C  
[td]NZCV  
 | 
 
流程控制 指令  
 
 | 
JMP  
[td]unconditional jump无条件跳转  
[td]PC<--Address  
[td]-  
 | 
JSR  
[td]jump Subroutine跳到子程序  
[td]Stack<--PC,PC<--Address  
[td]-  
 | 
RTS  
[td]return from Subroutine由子程序返回  
[td]PC<--Stack  
[td]-  
 | 
RTI  
[td]return from Interrupt由中断返回  
[td]P<--Stack,PC<--Stack  
[td]From Stack  
 | 
BRA  
[td]branch Always转移  
[td]PC=PC+offset  
[td]-  
 | 
BEQ  
[td]branch on equal (zero set)相等(零标志被设置)时转移  
[td]if Z=1,PC+=offset  
[td]-  
 | 
BNE  
[td]branch on not equal (zero clear)不相等(零标志被清除)时转移  
[td]if Z=0,PC+=offset  
[td]-  
 | 
BCC  
[td]branch on carry clear进位标志被清除时转移(2)  
[td]if C=0,PC+=offset  
[td]-  
 | 
BCS  
[td]branch on carry set进位标志被设置时转移(2)  
[td]if C=1,PC+=offset  
[td]-  
 | 
BVC  
[td]branch on overflow clear溢出标志被清除时转移  
[td]if V=0,PC+=offset  
[td]-  
 | 
BVS  
[td]branch on overflow set溢出标志被设置时转移  
[td]if V=1,PC+=offset  
[td]-  
 | 
BMI  
[td]branch on minus负数时转移  
[td]if N=1,PC+=offset  
[td]-  
 | 
BPL  
[td]branch on plus正数时转移  
[td]if N=0,PC+=offset  
[td]-  
 | 
BBR  
[td]branch on bit reset (zero)某位被清除时转移  
[td] 
[td]-  
 | 
BBS  
[td]branch on bit set (one)某位被设置时转移  
[td] 
[td]-  
 | 
 
处理器状态指令  
 
 | 
CLC  
[td]clear carry flag清除进位标志  
[td]C<--0  
[td]C=0  
 | 
CLD  
[td]clear decimal mode清除十进制模式  
[td]D<--0  
[td]D=0  
 | 
CLI  
[td]clear interrupt disable bit清除中断禁用  
[td]I<--0  
[td]I=0  
 | 
CLV  
[td]clear overflow flag清除溢出标志  
[td]V<--0  
[td]V=0  
 | 
SEC  
[td]set carry flag进位标志  
[td]C<--1  
[td]C=1  
 | 
SED  
[td]set decimal mode十进制模式  
[td]C<--1  
[td]D=1  
 | 
SEI  
[td]set interrupt disable bit中断禁用  
[td]I<--1  
[td]I=1  
 | 
 
传送指令  
 
 | 
TAX  
[td]transfer accumulator to X index传送累加器到X变址寄存器  
[td]X<--A  
[td]NZ  
 | 
TAY  
[td]transfer accumulator to Y index传送累加器到Y变址寄存器  
[td]Y<--A  
[td]NZ  
 | 
TXA  
[td]transfer X index to accumulator传送X变址寄存器到累加器  
[td]A<--X  
[td]NZ  
 | 
TYA  
[td]transfer Y index to accumulator传送Y变址寄存器到累加器  
[td]A<--Y  
[td]NZ  
 | 
 
特殊指令  
 
 | 
NOP  
[td]no operation空操作  
[td] 
[td]-  
 | 
BRK  
[td]force break强行中断  
[td]Stack<--PC,PC<--$FFFE  
[td]B=1  |