您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 6502指令操作码排序
6502指令操作码排序[更新2009-06-06]指令功能ADC累加器,存储器,进位标志C相加,结果送累加器A?A+M+C→AAND寄存器与累加器相与,结果送累加器A∧M→AASL算术左移指令,移位功能是将字节内各位依次向左移1位,最高位移进标志位C中,最底位补0,执行结果相当于把移位前的数乘2BCC如果标志位C=0则转移,否则继续BCS如果标志位C=1则转移,否则继续BEQ如果标志位Z=1则转移,否则继续BIT位测试指令BMI如果标志位N=1则转移,否则继续BNE如果标志位Z=0则转移,否则继续BPL如果标志位N=0则转移,否则继续BVC如果标志位V=0则转移,否则继续BVS如果标志位V=1则转移,否则继续CLC清除进位标志0→CCLD清除十进制运算标志D0→DCLI清除中断禁止指令I0→ICLV清除溢出标志V0→VCMP累加器和存储器比较CPX寄存器X的内容和存储器比较CPY寄存器Y的内容和存储器比较DECA存储器单元内容减1M-1→MDEXX存储器单元内容减1M-1→MDEYY存储器单元内容减1M-1→MEOR寄存器与累加器相异或,结果送累加器A≮M→AINCA存储器单元内容增1M+1→MINT中断指令INXX存储器单元内容增1M+1→MINYY存储器单元内容增1M+1→MJMP无条件转移指令JSR转移到子程序指令LDA由存储器取数送入累加器M→ALDX由存储器取数送入累加器M→XLDY由存储器取数送入累加器M→YLSR逻辑右移指令,将字节内各位依次向右移1位,最低位移进标志位C,最高位补0.对于无符号数和正数相当于乘1/2ORA寄存器与累加器相或,结果送累加器A∨M→APHA累加器进栈指令PHP标志寄存器P进栈指令PLA累加器出栈指令PLP标志寄存器P出栈指令ROL循环左移指令,将字节内容连同进位C一起依次向左移1位ROR循环右移指令,将字节内容连同进位C一起依次向右移1位RTS从主程序返回指令SBC从累加器减去存储器和进位标志C,结果送累加器A-M-C→ASEC置进位标志C1→CSED置十进制运算标志D1→DSEI置位中断禁止标志I1→ISTA将累加器的内容送入存储器A--MSTX将寄存器X的内容送入存储器X--MSTY将寄存器Y的内容送入存储器Y--MTAX将累加器A的内容送入变址寄存器XTAY将累加器A的内容送入变址寄存器YTSX将堆栈指针S的内容送入变址寄存器XTXA将变址寄存器X的内容送入累加器ATXS将变址寄存器X的内容送入堆栈指针STYA将变址寄存器Y的内容送入累加器A指令操作码符号码格式寻址方式00INT00BRK01ORA($addr,X)先变址X后间址05ORA$addr零页寻址06ASL$data零页寻址08PHP09ORA#$data立即寻址0AASL累加器寻址0DORA$addr16绝对寻址0EASL$addr16绝对寻址10BPL$data16相对寻址11ORA($addr),Y后变址Y间址15ORA$addr,X零页X变址16ASL$addr,X零页X变址18CLC19ORA$addr16,Y绝对Y变址1DORA$addr16,X绝对X变址1EASL$addr16,X绝对X变址20JSR$addr16绝对寻址21AND($addr,X)先变址X后间址24BIT$addr零页寻址25AND$addr零页寻址26ROL$data零页寻址28PLP29AND#$data立即寻址2AROL累加器寻址2CBIT$addr16绝对寻址2DAND$addr16绝对寻址2EROL$addr16绝对寻址30BMI$data16相对寻址31AND($addr),Y后变址Y间址35AND$addr,X零页X变址36ROL$addr,X零页X变址38SEC39AND$addr16,Y绝对Y变址3DAND$addr16,X绝对X变址3EROL$addr16,X绝对X变址40rti41EOR($addr,X)先变址X后间址45EOR$addr零页寻址46LSR$data零页寻址48PHA49EOR#$data立即寻址4ALSR累加器寻址4CJMP$addr16绝对寻址4DEOR$addr16绝对寻址4ELSR$addr16绝对寻址50BVC$data16相对寻址51EOR($addr),Y后变址Y间址55EOR$addr,X零页X变址56LSR$addr,X零页X变址58CLI59EOR$addr16,Y绝对Y变址5DEOR$addr16,X绝对X变址5ELSR$addr16,X绝对X变址60RTS61ADC($addr,X)先变址X后间址65ADC$addr零页寻址66ROR$data零页寻址68PLA69ADC#$data立即寻址6AROR累加器寻址6CJMP($data16)间接寻址6DADC$addr16绝对寻址6EROR$addr16绝对寻址70BVS$data16相对寻址71ADC($addr),Y后变址Y间址75ADC$addr,X零页X变址76ROR$addr,X零页X变址78SEI79ADC$addr16,Y绝对Y变址7DADC$addr16,X绝对X变址7EROR$addr16,X绝对X变址81STA($addr,X)先变址X后间址84STY$addr零页寻址85STA$addr零页寻址86STX$addr零页寻址88DEY隐含寻址8ATXA寄存器寻址8CSTY$addr16绝对寻址8DSTA$addr16绝对寻址8ESTX$addr16绝对寻址90BCC$data16相对寻址91STA($addr),Y后变址Y间址94STY$addr,X零页X变址95STA$addr,X零页X变址96STX$addr,Y零页Y变址98TYA寄存器寻址99STA$addr16,Y绝对Y变址9ATXS寄存器寻址9DSTA$addr16,X绝对X变址A0LDY#$data立即寻址A1LDA($addr,X)先变址X后间址A2LDX#$data立即寻址A4LDY$addr零页寻址A5LDA$addr零页寻址A6LDX$addr零页寻址A8TAY寄存器寻址A9LDA#$data立即寻址AATAX寄存器寻址ACLDY$addr16绝对寻址ADLDA$addr16绝对寻址AELDX$addr16绝对寻址B0BCS$data16相对寻址B1LDA($addr),Y后变址Y间址B4LDY$addr,X零页X变址B5LDA$addr,X零页X变址B6LDX$addr,Y零页Y变址B8CLVB9LDA$addr16,Y绝对Y变址BATSX寄存器寻址BCLDY$addr16,X绝对X变址BDLDA$addr16,X绝对X变址BELDX$addr16,Y绝对Y变址C0CPY#$data立即寻址C1CMP($addr,X)先变址X后间址C4CPY$addr零页寻址C5CMP$addr零页寻址C6DEC$addr零页寻址C8INY隐含寻址C9CMP#$data立即寻址CADEX隐含寻址CCCPY$addr16绝对寻址CDCMP$addr16绝对寻址CEDEC$addr16绝对寻址D0BNE$data16相对寻址D1CMP($addr),Y后变址Y间址D5CMP$addr,X零页X变址D6DEC$addr,X零页X变址D8CLDD9CMP$addr16,Y绝对Y变址DDCMP$addr16,X绝对X变址DEDEC$addr16,X绝对X变址E0CPX#$data立即寻址E1SBC($addr,X)先变址X后间址E4CPX$addr零页寻址E5SBC$addr零页寻址E6INC$addr零页寻址E8INX隐含寻址E9SBC#$data立即寻址EANOPECCPX$addr16绝对寻址EDSBC$addr16绝对寻址EEINC$addr16绝对寻址F0BEQ$data16相对寻址F1SBC($addr),Y后变址Y间址F5SBC$addr,X零页X变址F6INC$addr,X零页X变址F8SEDF9SBC$addr16,Y绝对Y变址FDSBC$addr16,X绝对X变址FEINC$addr16,X绝对X变址寄存器功能A8位寄存器,只能存储一个(00-FF)之间的立即数X8位寄存器,它在编程中常被当作一个计数器来使用.它可以由指令控制而被置成一个常数Y8位寄存器,它在编程中常被当作一个计数器来使用.它可以由指令控制而被置成一个常数PC程序计数器,16位寄存器,存放指令地址码S堆栈指针,6502规定堆栈设在第1页存储器中,所以堆栈指针S也是8位寄存器P标志寄存器,8位的寄存器,但是只用了其中的7位,第5位空着不用.标志位功能在P中的位置C进位标志.指令执行完毕后的最高进位状态,若最高位有进位则使C=1,若最高位无进位则使C=00Z零标志.指令执行完毕后结果为0,那么Z=1;否则Z=0.1I中断标志.此位置0表示允许中断,置1表示禁止中断,但非屏蔽中断不受次约2V溢出标志.指令执行后若产生溢6出,则次标志位被置1N负数标志.指令执行完毕后,若结果最高位为1,则该位置17
本文标题:6502指令操作码排序
链接地址:https://www.777doc.com/doc-2930853 .html