# 6502 cycle times

From NESdev Wiki

Jump to navigationJump to search
I put this spreadsheet together because I didn't like the way the timing information was organized in other places. Some mnemonic/addressing mode combinations do not have an opcode and are left blank because they are not legal instructions. I may add the illegal opcodes later. Cells marked with "+" mean add one cycle if a page boundary is crossed.

Mnemonic | Description | IMP | IMM | ZP | ZP,X | ZP,Y | ABS | ABS,X | ABS,Y | IND | IND,X | IND,Y | ACC |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|

ADC | ADd with Carry | 2 | 3 | 4 | 4 | 4+ | 4+ | 6 | 5+ | ||||

AND | bitwise AND with accumulator | 2 | 3 | 4 | 4 | 4+ | 4+ | 6 | 5+ | ||||

ASL | Arithmetic Shift Left | 5 | 6 | 6 | 7 | ||||||||

BIT | test BITs | 3 | 4 | ||||||||||

BRK | BreaK | 7 | |||||||||||

CMP | CoMPare accumulator | 2 | 3 | 4 | 4 | 4+ | 4+ | 6 | 5+ | ||||

CPX | ComPare X register | 2 | 3 | 4 | |||||||||

CPY | ComPare Y register | 2 | 3 | 4 | |||||||||

DEC | DECrement memory | 5 | 6 | 6 | 7 | ||||||||

EOR | bitwise Exclusive OR | 2 | 3 | 4 | 4 | 4+ | 4+ | 6 | 5+ | ||||

INC | INCrement memory | 5 | 6 | 6 | 7 | ||||||||

JMP | JuMP | 3 | 5 | ||||||||||

JSR | Jump to SubRoutine | 6 | |||||||||||

LDA | LoaD Accumulator | 2 | 3 | 4 | 4 | 4+ | 4+ | 6 | 5+ | ||||

LDX | LoaD X register | 2 | 3 | 4 | 4 | 4+ | |||||||

LDY | LoaD Y register | 2 | 3 | 4 | 4 | 4+ | |||||||

LSR | Logical Shift Right | 5 | 6 | 6 | 7 | 2 | |||||||

NOP | No OPeration | 2 | |||||||||||

ORA | bitwise OR with Accumulator | 2 | 3 | 4 | 4 | 4+ | 4+ | 6 | 5+ | ||||

ROL | Rotate Left | 5 | 6 | 6 | 7 | 2 | |||||||

ROR | Rotate Right | 5 | 6 | 6 | 7 | 2 | |||||||

RTI | ReTurn from Interrupt | 6 | |||||||||||

RTS | ReTurn from Subroutine | 6 | |||||||||||

SBC | SuBtract with Carry | 2 | 3 | 4 | 4 | 4+ | 4+ | 6 | 5+ | ||||

STA | Store Accumulator | 3 | 4 | 4 | 5 | 5 | 6 | 6 | |||||

STX | Store X register | 3 | 4 | 4 | |||||||||

STY | Store Y register | 3 | 4 | 4 | |||||||||

TAX | Transfer A to X | 2 | |||||||||||

TXA | Transfer X to A | 2 | |||||||||||

DEX | DEcrement X | 2 | |||||||||||

INX | INcrement X | 2 | |||||||||||

TAY | Transfer A to Y | 2 | |||||||||||

TYA | Transfer Y to A | 2 | |||||||||||

DEY | Decrement Y | 2 | |||||||||||

INY | Increment Y | 2 | |||||||||||

CLC | CLear Carry | 2 | |||||||||||

SEC | SEt Carry | 2 | |||||||||||

CLI | CLear Interrupt | 2 | |||||||||||

SEI | SEt Interrupt | 2 | |||||||||||

CLV | CLear oVerflow | 2 | |||||||||||

CLD | CLear Decimal | 2 | |||||||||||

SED | SEt Decimal | 2 |