助记符
[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 |