原创 6502指令集

2010-5-12 18:53 2623 2 2 分类: MCU/ 嵌入式

6502指令集<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


一、       算术运算类


1、  ADC带进位位加 ,指令格式:




寻址方式


调用格式


立即数寻址


ADC #dd


首页寻址


ADC aa


首页索引寻址


ADC aa,X


绝对寻址


ADC aaaa


绝对索引寻址


ADC aaaa,X


绝对索引寻址


ADC aaaa,Y


索引直接寻址


ADC (aaaa,X)


直接索引寻址


ADC (aaaa),Y


 


2、  SBC带进位位减 ,指令格式:




寻址方式


调用格式


立即数寻址


SBC #dd


首页寻址


SBC aa


首页索引寻址


SBC aa,X


绝对寻址


SBC aaaa


绝对索引寻址


SBC aaaa,X


绝对索引寻址


SBC aaaa,Y


索引直接寻址


SBC (aaaa,X)


直接索引寻址


SBC (aaaa),Y


 


3、  CMP 累加器与存储单元内容比较,即A – M,只影响标志位




寻址方式


调用格式


立即数寻址


CMP #dd


首页寻址


CMP aa


首页索引寻址


CMP aa,X


绝对寻址


CMP aaaa


绝对索引寻址


CMP aaaa,X


绝对索引寻址


CMP aaaa,Y


索引直接寻址


CMP (aaaa,X)


直接索引寻址


CMP (aaaa),Y


   若结果为 负值,N=1;若结果为0Z=0;若无借位,即A>=MC=1


 


4、  CPX 寄存器X与存储单元内容比较,即X – M,只影响标志位  




寻址方式


调用格式


立即数寻址


CPX #dd


首页寻址


CPX aa


绝对寻址


CPX aaaa


若结果为 负值,N=1;若结果为0Z=0;若无借位,即A>=MC=1


 


5、  CPY 寄存器Y与存储单元内容比较,即Y – M,只影响标志位  




寻址方式


调用格式


立即数寻址


CPY #dd


首页寻址


CPY aa


绝对寻址


CPY aaaa


若结果为 负值,N=1;若结果为0Z=0;若无借位,即A>=MC=1


 


6、  DEC 存储单元内容减1  




寻址方式


调用格式


首页寻址


DEC aa


首页索引寻址


DEC aa,X


绝对寻址


DEC aaaa


绝对索引寻址


DEC aaaa,X


 


7、  DEX 寄存器X内容减1


 


8、  DEY 寄存器Y内容减1


 


9、  INC 存储单元内容加1  




寻址方式


调用格式


首页寻址


INC aa


首页索引寻址


INC aa,X


绝对寻址


INC aaaa


绝对索引寻址


INC aaaa,X


 


10、 INX 寄存器X1


 


11、 INY 寄存器Y1


 


二、       逻辑运算类


1、  AND 与累加器A进行逻辑运算 ,结果存于A,指令格式为:  




寻址方式


调用格式


立即数寻址


AND #dd


首页寻址


AND aa


首页索引寻址


AND aa,X


绝对寻址


AND aaaa


绝对索引寻址


AND aaaa,X


绝对索引寻址


AND aaaa,Y


索引直接寻址


AND (aaaa,X)


直接索引寻址


AND (aaaa),Y


 


2、  ORA与累加器A进行逻辑运算 ,结果存于A,指令格式为:  




寻址方式


调用格式


立即数寻址


ORA #dd


首页寻址


ORA aa


首页索引寻址


ORA aa,X


绝对寻址


ORA aaaa


绝对索引寻址


ORA aaaa,X


绝对索引寻址


ORA aaaa,Y


索引直接寻址


ORA (aaaa,X)


直接索引寻址


ORA (aaaa),Y


 


3、  EOR 累加器与存储单元内容异或运算,结果放于A累加器,指令格式为:




寻址方式


调用格式


立即数寻址


EOR #dd


首页寻址


EOR aa


首页索引寻址


EOR aa,X


绝对寻址


EOR aaaa


绝对索引寻址


EOR aaaa,X


绝对索引寻址


EOR aaaa,Y


索引直接寻址


EOR (aaaa,X)


直接索引寻址


EOR (aaaa),Y


 


4、  ASL带进位位左移,指令格式为:  




寻址方式


调用格式


累加器寻址


ASL A


首页寻址


ASL aa


首页索引寻址


ASL aa,X


绝对寻址


ASL aaaa


绝对索引寻址


ASL aaaa,X


 


5、  LSR 带进位位右移,指令格式为:  




寻址方式


调用格式


累加器寻址


LSR A


首页寻址


LSR aa


首页索引寻址


LSR aa,X


绝对寻址


LSR aaaa


绝对索引寻址


LSR aaaa,X


 


6、  ROL带进位位循环左移,指令格式为:  




寻址方式


调用格式


累加器寻址


ROL A


首页寻址


ROL aa


首页索引寻址


ROL aa,X


绝对寻址


ROL aaaa


绝对索引寻址


ROL aaaa,X


 


7、  ROR带进位位循环右移,指令格式为:  




寻址方式


调用格式


累加器寻址


ROR A


首页寻址


ROR aa


首页索引寻址


ROR aa,X


绝对寻址


ROR aaaa


绝对索引寻址


ROR aaaa,X


 


三、       数据传送类


1、  LDA 将指定数据送入累加器A




寻址方式


调用格式


立即数寻址


LDA #dd


首页寻址


LDA aa


首页索引寻址


LDA aa,X


绝对寻址


LDA aaaa


绝对索引寻址


LDA aaaa,X


绝对索引寻址


LDA aaaa,Y


索引直接寻址


LDA (aaaa,X)


直接索引寻址


LDA (aaaa),Y


 


2、  LDX 将指定数据送入寄存器X




寻址方式


调用格式


立即数寻址


LDX #dd


首页寻址


LDX aa


首页索引寻址


LDX aa,X


绝对寻址


LDX aaaa


绝对索引寻址


LDX aaaa,X


 


3、  LDY 将指定数据送入寄存器Y




寻址方式


调用格式


立即数寻址


LDY #dd


首页寻址


LDY aa


首页索引寻址


LDY aa,X


绝对寻址


LDY aaaa


绝对索引寻址


LDY aaaa,X


 


4、  PHA 将累加器内容压入堆栈


 


5、  PHP 将状态标志位寄存器压入堆栈


 


6、  PLA 将累加器内容弹出堆栈


 


7、  PLP 将状态标志位寄存器弹出堆栈


 


8、  STA 将累加器内容传入指定存储单元




寻址方式


调用格式


首页寻址


STA aa


首页索引寻址


STA aa,X


绝对寻址


STA aaaa


绝对索引寻址


STA aaaa,X


绝对索引寻址


STA aaaa,Y


索引直接寻址


STA (aaaa,X)


直接索引寻址


STA (aaaa),Y


 


9、  STX 将寄存器X内容传入指定存储单元  




寻址方式


调用格式


首页寻址


STX aa


首页索引寻址


STX aaY


绝对寻址


STX aaaa


 


10、              STY 将寄存器Y内容传入指定存储单元  




寻址方式


调用格式


首页寻址


STY aa


首页索引寻址


STY aaX


绝对寻址


STY aaaa


 


11、  TAX 累加器内容传入寄存器X


 


12、 TAY 累加器内容传入寄存器Y


 


13、 TXA 寄存器X内容传入累加器A


 


14、 TYA 寄存器Y内容传入累加器A


 


15、 TSX 堆栈内容传入寄存器X


 


16、 TXS 寄存器X内容传入堆栈


 


四、       控制跳转类


1、  BCC/BCS/BEQ/BMI/BNE/BPL/BVC/BVS,指令调用格式及转移条件为:  




指令格式


转移条件


BCC aa


C=0


BCS aa


C=1


BNE aa


Z=0


BEQ aa


Z=1


BPL aa


N=0


BMI aa


N=1


BVC aa


V=0


BVS aa


V=1


 


2、  JMP 跳转到指定位置 




寻址方式


指令格式


绝对寻址


JMP aaaa


直接寻址


JMPaaaa


 


3、  JSR 子程序跳转指令


 


4、  RTI 中断返回


 


5、  RTS 子程序返回


 


五、       布尔运算类


1、  BIT 累加器与存储单元进行 位与 测试,指令格式及结果为:  




寻址方式


指令格式


指令执行结果


首页寻址


BIT aa


If(A&M)==0,Z=1;


If(A&M)!=0,Z=0;


N=bit7 of M;


V=bit6 of M;


绝对寻址


BIT aaaa


 


2、  TST 判断某位是否为0




寻址方式


调用格式


首页寻址


CLR aa0


首页寻址


CLR aa1


首页寻址


CLR aa2


首页寻址


CLR aa3


首页寻址


CLR aa4


首页寻址


CLR aa5


首页寻址


CLR aa6


首页寻址


CLR aa7


   若指定位为0,则置位进位标志位C


 


3、  CLC 清除进位标志位C


 


4、  CLD 清除十进制标志位D


 


5、  CLI  清除中断标志位I,即恢复中断功能


 


6、  CLV 清除溢出标志位V


 


7、  CLR 清除存储单元内容指定位




寻址方式


调用格式


首页寻址


CLR aa0


首页寻址


CLR aa1


首页寻址


CLR aa2


首页寻址


CLR aa3


首页寻址


CLR aa4


首页寻址


CLR aa5


首页寻址


CLR aa6


首页寻址


CLR aa7


 


8、  INV 存储单元内容指定位 取反




寻址方式


调用格式


首页寻址


INV aa0


首页寻址


INV aa1


首页寻址


INV aa2


首页寻址


INV aa3


首页寻址


INV aa4


首页寻址


INV aa5


首页寻址


INV aa6


首页寻址


INV aa7


 


9、  SEC 置位进位标志位C


 


10、SED 置位十进制标志位D


 


11、SEI 置位中断标志位I,即屏蔽中断功能


 


12、SET 置位存储单元内容指定位




寻址方式


调用格式


首页寻址


SET aa0


首页寻址


SET aa1


首页寻址


SET aa2


首页寻址


SET aa3


首页寻址


SET aa4


首页寻址


SET aa5


首页寻址


SET aa6


首页寻址


SET aa7


 


六、       其他


1NOP 空操作

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
2
关闭 站长推荐上一条 /3 下一条