6502_microprocessor.pdf

Embed Size (px)

Citation preview

  • 8/17/2019 6502_microprocessor.pdf

    1/22

    502 Mi cr opr ocessor

    Most of t he f ol l owi ng i nf ormat i on has been t aki ng out of t he "Commodore 64rogr ammers Ref erence Manual " si mpl y because i t was avai l abl e i n el ect r oni corm and t here appear s t o be no di f f erence bet ween t hi s document at i on andhe 6502 document at i on, t hey ar e bot h f r om t he 6500 f ami l y af t er al l . I ' ve

    made changes and addi t i ons wher e appropr i at e.

    I n theor y you shoul d be abl e t o use any code you can f i nd f or emul at i nghe 6510 ( t he C64 pr ocessor) .

    THE REGI STERS I NSI DE THE 6502 MI CROPROCESSOR

    Al most al l cal cul at i ons ar e done i n t he mi cropr ocessor . Regi st er s ar especi al pi eces of memory i n t he pr ocessor whi ch are used t o car r y out , andst or e i nf or mat i on about cal cul at i ons. The 6502 has t he f ol l owi ng r egi st er s:

    THE ACCUMULATOR

    Thi s i s THE most i mpor t ant r egi st er i n t he mi cr opr ocessor. Var i ous ma-chi ne l anguage i nst r uct i ons al l ow you t o copy t he cont ent s of a memoryl ocat i on i nt o the accumul at or , copy the cont ent s of t he accumul at or i nt oa memory l ocat i on, modi f y the cont ent s of t he accumul ator or some ot herr egi st er di r ect l y, wi t hout af f ect i ng any memor y. And t he accumul at or i st he onl y regi st er t hat has i nst r uct i ons f or per f or mi ng mat h.

    THE X I NDEX REGI STER

    Thi s i s a ver y i mpor t ant r egi st er . Ther e ar e i nst r ucti ons f or near l yal l of t he t r ansf ormat i ons you can make to t he accumul ator. But t here areot her i nst r ucti ons f or t hi ngs t hat onl y the X r egi st er can do. Var i ousmachi ne l anguage i nst r uct i ons al l ow you t o copy t he cont ent s of a memoryl ocat i on i nt o the X r egi st er , copy the cont ent s of t he X r egi st er i nt o amemory l ocat i on, and modi f y the cont ent s of t he X, or some ot her r egi st erdi rect l y.

    THE Y I NDEX REGI STER

    Thi s i s a ver y i mpor t ant r egi st er . Ther e ar e i nst r ucti ons f or near l yal l of t he t r ansf ormat i ons you can make t o the accumul ator, and t he Xr egi st er . But t her e ar e ot her i nst r ucti ons f or t hi ngs that onl y t he Yr egi st er can do. Var i ous machi ne l anguage i nst r uct i ons al l ow you t o copyt he cont ent s of a memor y l ocat i on i nt o the Y r egi st er , copy t he cont ent sof t he Y r egi st er i nt o a memor y l ocat i on, and modi f y the cont ent s of t heY, or some ot her r egi st er di r ectl y.

    THE STATUS REGI STER

    Thi s r egi st er consi st s of ei ght " f l ags" ( a f l ag = somet hi ng t hat i ndi -cat es whet her somet hi ng has, or has not occur r ed) . Bi t s of t hi s r egi st erar e al t er ed dependi ng on t he r esul t of ar i t hmet i c and l ogi cal operat i ons.These bi t s ar e descri bed bel ow:

    Bi t No. 7 6 5 4 3 2 1 0S V B D I Z C

    Bi t 0 - C - Car r y f l ag: t hi s hol ds t he car r y out of t he most si gni f i cantbi t i n any ar i t hmet i c oper at i on. I n subt r act i on oper at i ons however , t hi sf l ag i s cl eared - set t o 0 - i f a borr ow i s requi red, set t o 1 - i f nobor r ow i s requi r ed. The car r y f l ag i s al so used i n shi f t and r ot at el ogi cal oper at i ons.

    Bi t 1 - Z - Zer o f l ag: t hi s i s set t o 1 when any ar i t hmet i c or l ogi caloper at i on pr oduces a zer o r esul t , and i s set t o 0 i f t he r esul t i snon- zero.

    Bi t 2 - I : t hi s i s an i nter r upt enabl e/ di sabl e f l ag. I f i t i s set ,i nt er rupt s are di sabl ed. I f i t i s c l eared, i nt err upt s ar e enabl ed.

    Bi t 3 - D: t hi s i s t he deci mal mode stat us f l ag. When set, and an Add wi t hCar r y or Subt r act wi t h Car r y i nst r uct i on i s execut ed, t he sour ce val ues ar et r eat ed as val i d BCD ( Bi nary Coded Deci mal , eg. 0x00- 0x99 = 0- 99) number s.The r esul t generated i s al so a BCD number .

  • 8/17/2019 6502_microprocessor.pdf

    2/22

    Bi t 4 - B: t hi s i s set when a sof t war e i nt er r upt ( BRK i nst r ucti on) i sexecut ed.

    Bi t 5: not used. Supposed t o be l ogi cal 1 at al l t i mes.

    Bi t 6 - V - Over f l ow f l ag: when an ar i t hmet i c oper at i on pr oduces a r esul tt oo l ar ge t o be r epr esent ed i n a byt e, V i s set .

    Bi t 7 - S - Si gn f l ag: t hi s i s set i f t he resul t of an operat i on i snegat i ve, cl eared i f posi t i ve.

    The most commonl y used f l ags are C, Z, V, S.

     THE PROGRAM COUNTER

    Thi s cont ai ns t he addr ess of t he cur r ent machi ne l anguage i nst r uct i onbei ng execut ed. Si nce the oper at i ng syst em i s al ways "RUN"ni ng i n t heCommodore VI C- 20 ( or, f or t hat matt er, any comput er) , t he pr ogr am count eri s al ways changi ng. I t coul d onl y be st opped by hal t i ng t he mi cropr ocessori n some way.

    THE STACK POI NTER

    Thi s regi st er cont ai ns t he l ocat i on of t he f i r st empt y pl ace on t hest ack. The st ack i s used f or t emporary st orage by machi ne l anguage pr o-grams, and by t he comput er .

    ADDRESSI NG MODES

    I nst r uct i ons need operands t o work on. There ar e var i ous ways of i ndi cat i ng wher e t he pr ocessor i s t o get t hese oper ands. The di f f er entmethods used t o do t hi s ar e cal l ed addr essi ng modes. The 6502 of f ers 11modes, as descr i bed bel ow.

    1) I mmedi at eI n t hi s mode t he oper and' s val ue i s gi ven i n t he i nst r ucti on i t sel f . I nassembl y l anguage thi s i s i ndi cat ed by "#" bef ore the operand.eg. LDA #$0A - means "l oad t he accumul at or wi t h t he hex val ue 0A"I n machi ne code di f f erent modes ar e i ndi cat ed by di f f erent codes. So LDAwoul d be t r ansl ated i nt o di f f erent codes dependi ng on t he addr essi ng mode.I n t hi s mode, i t i s: $A9 $0A

    2 & 3) Absol ut e and Zero- page Absol ut eI n t hese modes t he operands addr ess i s gi ven.eg. LDA $31F6 - ( assembl er )

    $AD $31F6 - ( machi ne code)I f t he addr ess i s on zer o page - i . e. any addr ess where t he hi gh byte i s00 - onl y 1 byte i s needed f or t he addr ess. The pr ocessor aut omat i cal l yf i l l s the 00 hi gh byt e.eg. LDA $F4

    $A5 $F4Not e t he di f f er ent i nst r uct i on codes f or t he di f f er ent modes.Not e al so t hat f or 2 byt e addr esses, t he l ow byt e i s st or e f i r st , eg.LDA $31F6 i s s t ored as t hree byt es i n memory, $AD $F6 $31.Zer o- page absol ut e i s usual l y j ust cal l ed zer o- page.

    4) I mpl i edNo operand addr esses ar e requi r ed f or t hi s mode. They are i mpl i ed by the

    i nstr ucti on.eg. TAX - ( t r ansf er accumul at or cont ent s to X- r egi st er )$AA

    5) Accumul at orI n t hi s mode t he i nst r uct i on oper at es on dat a i n t he accumul at or , so nooperands are needed.eg. LSR - l ogi cal bi t shi f t r i ght

    $4A

    6 & 7) I ndexed and Zero- page I ndexedI n t hese modes t he addr ess gi ven i s added t o the val ue i n ei t her t he X orY i ndex r egi st er t o gi ve t he act ual addr ess of t he oper and.eg. LDA $31F6, Y

    $D9 $31F6LDA $31F6, X$DD $31F6

  • 8/17/2019 6502_microprocessor.pdf

    3/22

    Not e that t he di f f er ent operat i on codes det ermi ne the i ndex regi st er used.I n t he zer o- page ver si on, you shoul d not e that t he X and Y r egi st ers ar enot i nt erchangeabl e. Most i nst r uct i ons whi ch can be used wi t h zero- pagei ndexi ng do so wi t h X onl y.eg. LDA $20, X

    $B5 $20

    8) I ndi rectThi s mode appl i es onl y to t he J MP i nst r uct i on - J uMP to new l ocat i on. I t i si ndi cat ed by parent hesi s around t he operand. The operand i s t he addr ess of t he bytes whose val ue i s t he new l ocat i on.eg. J MP ( $215F)Assume t he f ol l owi ng - byte val ue

    $215F $76$2160 $30Thi s i nst r uct i on t akes t he val ue of bytes $215F, $2160 and uses t hat as t headdr ess t o j ump to - i . e. $3076 ( r emember t hat addr esses ar e st ored wi t hl ow byt e f i rst ) .

    9) Pr e- i ndexed i ndi r ectI n t hi s mode a zer 0- page addr ess i s added to the cont ent s of t he X- r egi st ert o gi ve t he addr ess of t he bytes hol di ng t he addr ess of t he operand. Thei ndi r ect i on i s i ndi cat ed by par ent hesi s i n assembl y l anguage.eg. LDA ( $3E, X)

    $A1 $3EAssume t he f ol l owi ng - byte val ue

    X- r eg. $05$0043 $15$0044 $24$2415 $6E

    Then t he i nst r uct i on i s execut ed by:( i ) addi ng $3E and $05 = $0043( i i ) get t i ng addr ess cont ai ned i n bytes $0043, $0044 = $2415( i i i ) l oadi ng cont ent s of $2415 - i . e. $6E - i nt o accumul at or

    Note a) When addi ng t he 1- byt e addr ess and t he X- r egi st er , wr ap aroundaddi t i on i s used - i . e. t he sum i s al ways a zer o- page addr ess.eg. FF + 2 = 0001 not 0101 as you mi ght expect .DON' T FORGET THI S WHEN EMULATI NG THI S MODE.

    b) Onl y t he X r egi st er i s used i n t hi s mode.

    10) Post - i ndexed i ndi r ectI n t hi s mode t he cont ent s of a zer o- page addr ess ( and the f ol l owi ng byte)gi ve the i ndi r ect addr essm whi ch i s added to t he cont ent s of t he Y- r egi st ert o yi el d t he act ual addr ess of t he operand. Agai n, i nassembl y l anguage,t he i nst r uct i on i s i ndi cat ed by par ent hesi s.

    eg. LDA ( $4C) , YNot e that t he par ent hesi s ar e onl y ar ound t he 2nd byte of t he i nst r uct i onsi nce i t i s the part t hat does t he i ndi rect i on.Assume t he f ol l owi ng - byte val ue

    $004C $00$004D $21Y- r eg. $05$2105 $6D

    Then t he i nst r uct i on above execut es by:( i ) get t i ng t he addr ess i n bytes $4C, $4D = $2100( i i ) addi ng t he cont ent s of t he Y- r egi st er = $2105( 111) l oadi ng t he cont ent s of t he byte $2105 - i . e. $6D i nt o t he

    accumul at or .Not e: onl y the Y- r egi st er i s used i n t hi s mode.

    11) Rel at i veThi s mode i s used wi t h Br anch- on- Condi t i on i nst r uct i ons. I t i s pr obabl y

    t he mode you wi l l use most of t en. A 1 byte val ue i s added t o t he pr ogr amcount er , and t he pr ogr am cont i nues execut i on f r om t hat addr ess. The 1byte number i s t r eat ed as a si gned number - i . e. i f bi t 7 i s 1, t he numbergi ven byt bi t s 0- 6 i s negat i ve; i f bi t 7 i s 0, t he number i s posi t i ve. Thi senabl es a br anch di spl acement of up t o 127 bytes i n ei t her di r ect i on.eg bi t no. 7 6 5 4 3 2 1 0 si gned val ue unsi gned val ue

    val ue 1 0 1 0 0 1 1 1 - 39 $A7val ue 0 0 1 0 0 1 1 1 +39 $27

    I nst r uct i on exampl e:BEQ $A7$F0 $A7

    Thi s i nstr ucti on wi l l check t he zero stat us bi t . I f i t i s set , 39 deci malwi l l be subt r act ed f r om t he pr ogr am count er and execut i on cont i nues f r omt hat addr ess. I f t he zer o st at us bi t i s not set , execut i on cont i nues f r omt he f ol l owi ng i nst r ucti on.Not es: a) The pr ogr am count er poi nt s t o t he st ar t of t he i nst r uct i onaf t er t he br anch i nst r uct i on bef or e t he br anch di spl acement i s added.

  • 8/17/2019 6502_microprocessor.pdf

    4/22

    Remember t o t ake t hi s i nt o account when cal cul at i ng di spl acement s.b) Br anch- on- condi t i on i nst r uct i ons wor k by checki ng t he r el evant

    st at us bi t s i n t he stat us r egi st er . Make sur e t hat t hey have been set orunset as you want t hem. Thi s i s of t en done usi ng a CMP i nst r uct i on.

    c) I f you f i nd you need t o br anch f ur t her t han 127 bytes, use t heopposi t e br anch- on- condi t i on and a J MP.

    +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -|| MCS6502 MI CROPROCESSOR I NSTRUCTI ON SET - ALPHABETI C SEQUENCE|+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    || ADC Add Memory t o Accumul at or wi t h Car r y| AND "AND" Memor y wi t h Accumul at or| ASL Shi f t Lef t One Bi t ( Memory or Accumul ator)|| BCC Br anch on Car r y Cl ear| BCS Br anch on Car r y Set| BEQ Br anch on Resul t Zero| BI T Test Bi t s i n Memory wi t h Accumul ator| BMI Br anch on Resul t Mi nus| BNE Br anch on Resul t not Zero| BPL Br anch on Resul t Pl us| BRK Force Br eak| BVC Br anch on Overf l ow Cl ear| BVS Br anch on Overf l ow Set|| CLC Cl ear Car r y Fl ag

    | CLD Cl ear Deci mal Mode| CLI Cl ear i nt err upt Di sabl e Bi t| CLV Cl ear Over f l ow Fl ag| CMP Compar e Memor y and Accumul at or| CPX Compar e Memor y and I ndex X| CPY Compar e Memor y and I ndex Y|| DEC Decr ement Memor y by One| DEX Decr ement I ndex X by One| DEY Decr ement I ndex Y by One|| EOR "Excl usi ve- Or " Memory wi t h Accumul at or|| I NC I ncr ement Memor y by One| I NX I ncrement I ndex X by One| I NY I ncr ement I ndex Y by One|

    | J MP J ump t o New Locat i on|+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +|

    MCS6502 MI CROPROCESSOR I NSTRUCTI ON SET - ALPHABETI C SEQUENCE ||

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +|

    J SR J ump t o New Locat i on Savi ng Ret urn Addr ess ||

    LDA Load Accumul at or wi t h Memor y |LDX Load I ndex X wi t h Memor y |LDY Load I ndex Y wi t h Memor y |LSR Shi f t Ri ght One Bi t ( Memory or Accumul ator ) |

    |NOP No Operat i on ||

    ORA "OR" Memor y wi t h Accumul at or ||

    PHA Push Accumul at or on Stack |PHP Push Processor St atus on St ack |PLA Pul l Accumul at or f r om St ack |PLP Pul l Pr ocessor St at us f r om St ack |

    |ROL Rotat e One Bi t Lef t ( Memory or Accumul at or ) |ROR Rot at e One Bi t Ri ght ( Memory or Accumul at or ) |RTI Ret ur n f r om I nt er r upt |RTS Retur n f r om Subr out i ne |

    |SBC Subt r act Memory f r om Accumul at or wi t h Bor r ow |SEC Set Carr y Fl ag |

  • 8/17/2019 6502_microprocessor.pdf

    5/22

    SED Set Deci mal Mode |SEI Set I nt er r upt Di sabl e St at us |STA Stor e Accumul at or i n Memory |STX Stor e I ndex X i n Memory |STY Store I ndex Y i n Memory |

    |TAX Transf er Accumul ator t o I ndex X |TAY Transf er Accumul ator t o I ndex Y |TSX Tr ansf er St ack Poi nt er t o I ndex X |TXA Transf er I ndex X t o Accumul ator |TXS Tr ansf er I ndex X t o St ack Poi nt er |TYA Transf er I ndex Y t o Accumul ator |

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +

    The f ol l owi ng not at i on appl i es t o t hi s summary:

    A Accumul ator EOR Logi cal Excl usi ve Or

    X, Y I ndex Regi st er s f r omS Tr ansf er f r om St ack

    M Memory t oS Transf er t o Stack

    P Processor St at us Regi st er - > Tr ansf er t o

    S St ack Poi nt er A, C N Z C I D V/ / / _ _ /

    ( Ref : 2. 2. 1)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mmedi ate | ADC #Oper | 69 | 2 | 2 || Zero Page | ADC Oper | 65 | 2 | 3 || Zero Page, X | ADC Oper, X | 75 | 2 | 4 || Absol ut e | ADC Oper | 60 | 3 | 4 || Absol ut e, X | ADC Oper , X | 70 | 3 | 4* || Absol ut e, Y | ADC Oper , Y | 79 | 3 | 4* |

    | ( I ndi r ect, X) | ADC ( Oper , X) | 61 | 2 | 6 || ( I ndi rect ) , Y | ADC ( Oper) , Y | 71 | 2 | 5* |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +* Add 1 i f page boundary i s cr ossed.

    AND "AND" memor y wi t h accumul at or AND

    Operat i on: A / \ M - > A N Z C I D V/ / _ _ _ _  

    ( Ref : 2. 2. 3. 0)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mmedi at e | AND #Oper | 29 | 2 | 2 || Zero Page | AND Oper | 25 | 2 | 3 || Zero Page, X | AND Oper, X | 35 | 2 | 4 |

  • 8/17/2019 6502_microprocessor.pdf

    6/22

    | Absol ut e | AND Oper | 2D | 3 | 4 || Absol ut e, X | AND Oper, X | 3D | 3 | 4* || Absol ut e, Y | AND Oper , Y | 39 | 3 | 4* || ( I ndi r ect, X) | AND ( Oper , X) | 21 | 2 | 6 || ( I ndi rect , Y) | AND ( Oper) , Y | 31 | 2 | 5 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +* Add 1 i f page boundary i s cr ossed.

    ASL ASL Shi f t Lef t One Bi t ( Memory or Accumul ator ) ASL+- +- +- +- +- +- +- +- +

    Oper at i on: C V

    Bi t 6 and 7 ar e t r ansf er r ed t o t he st at us regi st er . N Z C I D VI f t he resul t of A / \ M i s zer o t hen Z = 1, ot her wi se M7/ _ _ _ M6Z = 0

    ( Ref : 4. 2. 1. 1)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Zero Page | BI T Oper | 24 | 2 | 3 || Absol ut e | BI T Oper | 2C | 3 | 4 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

  • 8/17/2019 6502_microprocessor.pdf

    7/22

    BMI BMI Br anch on r esul t mi nus BMI

    Oper at i on: Br anch on N = 1 N Z C I D V_ _ _ _ _ _ 

    ( Ref : 4. 1. 1. 1)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Rel at i ve | BMI Oper | 30 | 2 | 2* |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +* Add 1 i f branch occur s t o same page.* Add 1 i f br anch occur s t o di f f er ent page.

    BNE BNE Br anch on r esul t not zer o BNE

    Oper at i on: Br anch on Z = 0 N Z C I D V_ _ _ _ _ _ 

    ( Ref : 4. 1. 1. 6)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Rel at i ve | BMI Oper | D0 | 2 | 2* |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +* Add 1 i f branch occur s t o same page.* Add 2 i f br anch occur s t o di f f er ent page.

    BPL BPL Br anch on r esul t pl us BPL

    Oper at i on: Br anch on N = 0 N Z C I D V_ _ _ _ _ _ 

    ( Ref : 4. 1. 1. 2)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Rel at i ve | BPL Oper | 10 | 2 | 2* |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +* Add 1 i f branch occur s t o same page.* Add 2 i f br anch occur s t o di f f er ent page.

    BRK BRK For ce Break BRK 

    Operat i on: Forced I nt err upt PC + 2 t oS P t oS N Z C I D V_ _ _ 1 _ _ 

    ( Ref : 9. 11)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | BRK | 00 | 1 | 7 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +1. A BRK command cannot be masked by set t i ng I .

    BVC BVC Br anch on over f l ow cl ear BVC

    Oper at i on: Br anch on V = 0 N Z C I D V_ _ _ _ _ _ 

    ( Ref : 4. 1. 1. 8)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    | Rel at i ve | BVC Oper | 50 | 2 | 2* |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +* Add 1 i f branch occur s t o same page.* Add 2 i f br anch occur s t o di f f er ent page.

    BVS BVS Br anch on overf l ow set BVS

    Oper at i on: Br anch on V = 1 N Z C I D V_ _ _ _ _ _ 

    ( Ref : 4. 1. 1. 7)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Rel at i ve | BVS Oper | 70 | 2 | 2* |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +* Add 1 i f branch occur s t o same page.

  • 8/17/2019 6502_microprocessor.pdf

    8/22

    * Add 2 i f br anch occur s t o di f f er ent page.

    CLC CLC Cl ear car r y f l ag CLC

    Oper at i on: 0 - > C N Z C I D V_ _ 0 _ _ _ 

    ( Ref : 3. 0. 2)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | CLC | 18 | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    CLD CLD Cl ear deci mal mode CLD

    Oper at i on: 0 - > D N A C I D V_ _ _ _ 0 _ 

    ( Ref : 3. 3. 2)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | CLD | D8 | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    CLI CLI Cl ear i nt er r upt di sabl e bi t CLI

    Operat i on: 0 - > I N Z C I D V

    _ _ _ 0 _ _ ( Ref : 3. 2. 2)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | CLI | 58 | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    CLV CLV Cl ear overf l ow f l ag CLV

    Oper at i on: 0 - > V N Z C I D V_ _ _ _ _ 0

    ( Ref : 3. 6. 1)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    | I mpl i ed | CLV | B8 | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    CMP CMP Compar e memor y and accumul at or CMP

    Oper at i on: A - M N Z C I D V/ / / _ _ _  

    ( Ref : 4. 2. 1)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mmedi at e | CMP #Oper | C9 | 2 | 2 || Zero Page | CMP Oper | C5 | 2 | 3 || Zero Page, X | CMP Oper , X | D5 | 2 | 4 || Absol ut e | CMP Oper | CD | 3 | 4 || Absol ut e, X | CMP Oper, X | DD | 3 | 4* |

    | Absol ut e, Y | CMP Oper , Y | D9 | 3 | 4* || ( I ndi r ect, X) | CMP ( Oper , X) | C1 | 2 | 6 || ( I ndi r ect) , Y | CMP ( Oper ) , Y | D1 | 2 | 5* |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +* Add 1 i f page boundary i s cr ossed.

    CPX CPX Compar e Memor y and I ndex X CPXN Z C I D V

    Oper at i on: X - M / / / _ _ _ ( Ref : 7. 8)

    +- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mmedi ate | CPX *Oper | E0 | 2 | 2 || Zero Page | CPX Oper | E4 | 2 | 3 || Absol ut e | CPX Oper | EC | 3 | 4 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

  • 8/17/2019 6502_microprocessor.pdf

    9/22

    CPY CPY Compar e memor y and i ndex Y CPYN Z C I D V

    Oper at i on: Y - M / / / _ _ _ ( Ref : 7. 9)

    +- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mmedi ate | CPY *Oper | C0 | 2 | 2 || Zero Page | CPY Oper | C4 | 2 | 3 || Absol ut e | CPY Oper | CC | 3 | 4 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    DEC DEC Decr ement memor y by one DEC

    Oper at i on: M - 1 - > M N Z C I D V/ / _ _ _ _  

    ( Ref : 10. 7)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Zero Page | DEC Oper | C6 | 2 | 5 || Zero Page, X | DEC Oper, X | D6 | 2 | 6 || Absol ut e | DEC Oper | CE | 3 | 6 || Absol ut e, X | DEC Oper , X | DE | 3 | 7 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    DEX DEX Decr ement i ndex X by one DEX

    Operat i on: X - 1 - > X N Z C I D V/ / _ _ _ _  

    ( Ref : 7. 6)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | DEX | CA | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    DEY DEY Decr ement i ndex Y by one DEY

    Operat i on: X - 1 - > Y N Z C I D V/ / _ _ _ _  

    ( Ref : 7. 7)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    | Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | DEY | 88 | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    EOR EOR "Excl usi ve- Or " memor y wi t h accumul at or EOR

    Operat i on: A EOR M - > A N Z C I D V/ / _ _ _ _  

    ( Ref : 2. 2. 3. 2)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mmedi ate | EOR #Oper | 49 | 2 | 2 || Zero Page | EOR Oper | 45 | 2 | 3 || Zero Page, X | EOR Oper, X | 55 | 2 | 4 |

    | Absol ut e | EOR Oper | 40 | 3 | 4 || Absol ut e, X | EOR Oper , X | 50 | 3 | 4* || Absol ut e, Y | EOR Oper , Y | 59 | 3 | 4* || ( I ndi r ect, X) | EOR ( Oper , X) | 41 | 2 | 6 || ( I ndi rect ) , Y | EOR ( Oper) , Y | 51 | 2 | 5* |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +* Add 1 i f page boundary i s cr ossed.

    I NC I NC I ncr ement memor y by one I NCN Z C I D V

    Operat i on: M + 1 - > M / / _ _ _ _ ( Ref : 10. 6)

    +- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Zero Page | I NC Oper | E6 | 2 | 5 || Zero Page, X | I NC Oper , X | F6 | 2 | 6 |

  • 8/17/2019 6502_microprocessor.pdf

    10/22

    | Absol ut e | I NC Oper | EE | 3 | 6 || Absol ut e, X | I NC Oper , X | FE | 3 | 7 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    I NX I NX I ncrement I ndex X by one I NXN Z C I D V

    Operat i on: X + 1 - > X / / _ _ _ _ ( Ref : 7. 4)

    +- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | I NX | E8 | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    I NY I NY I ncr ement I ndex Y by one I NY

    Oper at i on: X + 1 - > X N Z C I D V/ / _ _ _ _  

    ( Ref : 7. 5)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | I NY | C8 | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    J MP J MP J ump t o new l ocat i on J MP

    Oper at i on: ( PC + 1) - > PCL N Z C I D V

    ( PC + 2) - > PCH ( Ref : 4. 0. 2) _ _ _ _ _ _ ( Ref : 9. 8. 1)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Absol ut e | J MP Oper | 4C | 3 | 3 || I ndi rect | J MP ( Oper) | 6C | 3 | 5 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    J SR J SR J ump t o new l ocat i on savi ng r etur n addr ess J SR

    Oper at i on: PC + 2 t oS, ( PC + 1) - > PCL N Z C I D V( PC + 2) - > PCH _ _ _ _ _ _ 

    ( Ref : 8. 1)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|

    +- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Absol ut e | J SR Oper | 20 | 3 | 6 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    LDA LDA Load accumul at or wi t h memor y LDA

    Oper at i on: M - > A N Z C I D V/ / _ _ _ _  

    ( Ref : 2. 1. 1)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mmedi ate | LDA #Oper | A9 | 2 | 2 || Zero Page | LDA Oper | A5 | 2 | 3 || Zero Page, X | LDA Oper, X | B5 | 2 | 4 || Absol ut e | LDA Oper | AD | 3 | 4 |

    | Absol ut e, X | LDA Oper , X | BD | 3 | 4* || Absol ut e, Y | LDA Oper , Y | B9 | 3 | 4* || ( I ndi rect , X) | LDA ( Oper, X) | A1 | 2 | 6 || ( I ndi rect ) , Y | LDA ( Oper) , Y | B1 | 2 | 5* |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +* Add 1 i f page boundary i s cr ossed.

    LDX LDX Load i ndex X wi t h memor y LDX

    Oper at i on: M - > X N Z C I D V/ / _ _ _ _  

    ( Ref : 7. 0)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mmedi ate | LDX #Oper | A2 | 2 | 2 |

  • 8/17/2019 6502_microprocessor.pdf

    11/22

    | Zero Page | LDX Oper | A6 | 2 | 3 || Zero Page, Y | LDX Oper, Y | B6 | 2 | 4 || Absol ut e | LDX Oper | AE | 3 | 4 || Absol ut e, Y | LDX Oper , Y | BE | 3 | 4* |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +* Add 1 when page boundar y i s cr ossed.

    LDY LDY Load i ndex Y wi t h memor y LDYN Z C I D V

    Oper at i on: M - > Y / / _ _ _ _ ( Ref : 7. 1)

    +- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    | Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mmedi ate | LDY #Oper | A0 | 2 | 2 || Zero Page | LDY Oper | A4 | 2 | 3 || Zero Page, X | LDY Oper, X | B4 | 2 | 4 || Absol ut e | LDY Oper | AC | 3 | 4 || Absol ut e, X | LDY Oper , X | BC | 3 | 4* |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +* Add 1 when page boundar y i s cr ossed.

    LSR LSR Shi f t r i ght one bi t ( memory or accumul ator) LSR

    +- +- +- +- +- +- +- +- +Oper at i on: 0 - > | 7| 6| 5| 4| 3| 2| 1| 0| - > C N Z C I D V

    +- +- +- +- +- +- +- +- + 0 / / _ _ _ ( Ref : 10. 1)

    +- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Accumul ator | LSR A | 4A | 1 | 2 || Zero Page | LSR Oper | 46 | 2 | 5 || Zero Page, X | LSR Oper, X | 56 | 2 | 6 || Absol ut e | LSR Oper | 4E | 3 | 6 || Absol ut e, X | LSR Oper , X | 5E | 3 | 7 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    NOP NOP No oper at i on NOPN Z C I D V

    Oper at i on: No Oper at i on ( 2 cycl es) _ _ _ _ _ _ 

    +- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|

    +- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | NOP | EA | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    ORA ORA "OR" memor y wi t h accumul at or ORA

    Oper at i on: A V M - > A N Z C I D V/ / _ _ _ _  

    ( Ref : 2. 2. 3. 1)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mmedi at e | ORA #Oper | 09 | 2 | 2 || Zero Page | ORA Oper | 05 | 2 | 3 || Zero Page, X | ORA Oper, X | 15 | 2 | 4 || Absol ut e | ORA Oper | 0D | 3 | 4 |

    | Absol ut e, X | ORA Oper , X | 10 | 3 | 4* || Absol ut e, Y | ORA Oper , Y | 19 | 3 | 4* || ( I ndi r ect, X) | ORA ( Oper , X) | 01 | 2 | 6 || ( I ndi rect ) , Y | ORA ( Oper) , Y | 11 | 2 | 5 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +* Add 1 on page cr ossi ng

    PHA PHA Push accumul at or on st ack PHA

    Operat i on: A t oS N Z C I D V_ _ _ _ _ _ 

    ( Ref : 8. 5)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | PHA | 48 | 1 | 3 |

  • 8/17/2019 6502_microprocessor.pdf

    12/22

    +- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    PHP PHP Push pr ocessor st at us on st ack PHP

    Operat i on: P t oS N Z C I D V_ _ _ _ _ _ 

    ( Ref : 8. 11)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | PHP | 08 | 1 | 3 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    PLA PLA Pul l accumul at or f r om st ack PLA

    Oper at i on: A f r omS N Z C I D V_ _ _ _ _ _ 

    ( Ref : 8. 6)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | PLA | 68 | 1 | 4 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    PLP PLP Pul l pr ocessor st at us f r om st ack PLA

    Oper at i on: P f r omS N Z C I D V

    Fr om St ack( Ref : 8. 12)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | PLP | 28 | 1 | 4 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    ROL ROL Rot at e one bi t l ef t ( memory or accumul at or ) ROL

    +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +| M or A || +- +- +- +- +- +- +- +- + +- + |

    Oper at i on: +- < | 7| 6| 5| 4| 3| 2| 1| 0| | 7| 6| 5| 4| 3| 2| 1| 0| >- + N Z C I D V

    +- + +- +- +- +- +- +- +- +- + / / / _ _ _ ( Ref : 10. 4)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Accumul ator | ROR A | 6A | 1 | 2 || Zero Page | ROR Oper | 66 | 2 | 5 || Zero Page, X | ROR Oper, X | 76 | 2 | 6 || Absol ut e | ROR Oper | 6E | 3 | 6 || Absol ut e, X | ROR Oper , X | 7E | 3 | 7 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    Note: ROR i nst r uct i on i s avai l abl e on MCS650X mi cr opr ocessor s af t erJ une, 1976.

    RTI RTI Ret ur n f r om i nt er r upt RTI

  • 8/17/2019 6502_microprocessor.pdf

    13/22

    N Z C I D VOperat i on: P f r omS PC f r omS From St ack

    ( Ref : 9. 6)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | RTI | 4D | 1 | 6 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    RTS RTS Retur n f r om subr out i ne RTSN Z C I D V

    Operat i on: PC f r omS, PC + 1 - > PC _ _ _ _ _ _ 

    ( Ref : 8. 2)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | RTS | 60 | 1 | 6 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    SBC SBC Subt r act memory f r om accumul at or wi t h bor r ow SBC-

    Oper at i on: A - M - C - > A N Z C I D V- / / / _ _ /

    Note: C = Borr ow ( Ref : 2. 2. 2)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mmedi ate | SBC #Oper | E9 | 2 | 2 |

    | Zero Page | SBC Oper | E5 | 2 | 3 || Zero Page, X | SBC Oper, X | F5 | 2 | 4 || Absol ut e | SBC Oper | ED | 3 | 4 || Absol ut e, X | SBC Oper , X | FD | 3 | 4* || Absol ut e, Y | SBC Oper , Y | F9 | 3 | 4* || ( I ndi rect , X) | SBC ( Oper, X) | E1 | 2 | 6 || ( I ndi rect ) , Y | SBC ( Oper) , Y | F1 | 2 | 5 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +* Add 1 when page boundar y i s cr ossed.

    SEC SEC Set carr y f l ag SEC

    Oper at i on: 1 - > C N Z C I D V_ _ 1 _ _ _ 

    ( Ref : 3. 0. 1)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    | Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | SEC | 38 | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    SED SED Set deci mal mode SEDN Z C I D V

    Operat i on: 1 - > D _ _ _ _ 1 _ ( Ref : 3. 3. 1)

    +- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | SED | F8 | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    SEI SEI Set i nt er r upt di sabl e st at us SEDN Z C I D VOper at i on: 1 - > I _ _ _ 1 _ _ 

    ( Ref : 3. 2. 1)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | SEI | 78 | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    STA STA Store accumul at or i n memor y STA

    Oper at i on: A - > M N Z C I D V_ _ _ _ _ _ 

    ( Ref : 2. 1. 2)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

  • 8/17/2019 6502_microprocessor.pdf

    14/22

    | Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Zero Page | STA Oper | 85 | 2 | 3 || Zero Page, X | STA Oper, X | 95 | 2 | 4 || Absol ut e | STA Oper | 80 | 3 | 4 || Absol ut e, X | STA Oper , X | 90 | 3 | 5 || Absol ut e, Y | STA Oper , Y | 99 | 3 | 5 || ( I ndi rect , X) | STA ( Oper, X) | 81 | 2 | 6 || ( I ndi rect ) , Y | STA ( Oper) , Y | 91 | 2 | 6 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    STX STX St or e i ndex X i n memor y STX

    Oper at i on: X - > M N Z C I D V_ _ _ _ _ _ 

    ( Ref : 7. 2)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Zero Page | STX Oper | 86 | 2 | 3 || Zero Page, Y | STX Oper , Y | 96 | 2 | 4 || Absol ut e | STX Oper | 8E | 3 | 4 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    STY STY Store i ndex Y i n memory STY

    Oper at i on: Y - > M N Z C I D V_ _ _ _ _ _ 

    ( Ref : 7. 3)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Zero Page | STY Oper | 84 | 2 | 3 || Zero Page, X | STY Oper, X | 94 | 2 | 4 || Absol ut e | STY Oper | 8C | 3 | 4 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    TAX TAX Transf er accumul at or t o i ndex X TAX

    Oper at i on: A - > X N Z C I D V/ / _ _ _ _  

    ( Ref : 7. 11)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|

    +- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | TAX | AA | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    TAY TAY Transf er accumul at or t o i ndex Y TAY

    Oper at i on: A - > Y N Z C I D V/ / _ _ _ _  

    ( Ref : 7. 13)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | TAY | A8 | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    TSX TSX Transf er st ack poi nt er t o i ndex X TSXOper at i on: S - > X N Z C I D V

    / / _ _ _ _  ( Ref : 8. 9)

    +- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | TSX | BA | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    TXA TXA Transf er i ndex X t o accumul at or TXAN Z C I D V

    Oper at i on: X - > A / / _ _ _ _ ( Ref : 7. 12)

    +- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|

  • 8/17/2019 6502_microprocessor.pdf

    15/22

    +- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | TXA | 8A | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    TXS TXS Transf er i ndex X t o st ack poi nt er TXSN Z C I D V

    Oper at i on: X - > S _ _ _ _ _ _ ( Ref : 8. 8)

    +- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | TXS | 9A | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    TYA TYA Transf er i ndex Y t o accumul ator TYA

    Oper at i on: Y - > A N Z C I D V/ / _ _ _ _  

    ( Ref : 7. 14)+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| Addr essi ng Mode| Assembl y Language For m| OP CODE | No. Byt es| No. Cycl es|+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +| I mpl i ed | TYA | 98 | 1 | 2 |+- - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - +- - - - - - - - - +- - - - - - - - - - +

    +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -| I NSTRUCTI ON ADDRESSI NG MODES AND RELATED EXECUTI ON TI MES| ( i n cl ock cyc l es)

    +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -A A A B B B B B B B B B B CD N S C C E I M N P R V V LC D L C S Q T I E L K C S C

    Accumul at or | . . 2 . . . . . . . . . . .I mmedi ate | 2 2 . . . . . . . . . . .Zero Page | 3 3 5 . . . 3 . . . . . . .Zero Page, X | 4 4 6 . . . . . . . . . . .Zer o Page, Y | . . . . . . . . . . . . . .Absol ute | 4 4 6 . . . 4 . . . . . . .Absol ute, X | 4* 4* 7 . . . . . . . . . . .Absol ut e, Y | 4* 4* . . . . . . . . . . . .I mpl i ed | . . . . . . . . . . . . . 2Rel at i ve | . . . 2** 2** 2** . 2** 2** 2** 7 2** 2** .( I ndi r ect , X) | 6 6 . . . . . . . . . . . .( I ndi r ect ) , Y | 5* 5* . . . . . . . . . . . .

    Abs. I ndi r ect | . . . . . . . . . . . . . .+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C C C C C C D D D E I I I JL L L M P P E E E O N N N MD I V P X Y C X Y R C X Y P

    Accumul at or | . . . . . . . . . . . . . .I mmedi at e | . . . 2 2 2 . . . 2 . . . .Zero Page | . . . 3 3 3 5 . . 3 5 . . .Zero Page, X | . . . 4 . . 6 . . 4 6 . . .Zer o Page, Y | . . . . . . . . . . . . . .Absol ut e | . . . 4 4 4 6 . . 4 6 . . 3Absol ut e, X | . . . 4* . . 7 . . 4* 7 . . .Absol ut e, Y | . . . 4* . . . . . 4* . . . .I mpl i ed | 2 2 2 . . . . 2 2 . . 2 2 .Rel at i ve | . . . . . . . . . . . . . .( I ndi r ect , X) | . . . 6 . . . . . 6 . . . .( I ndi r ect ) , Y | . . . 5* . . . . . 5* . . . .

    Abs. I ndi r ect | . . . . . . . . . . . . . 5+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -* Add one cycl e i f i ndexi ng acr oss page boundary** Add one cycl e i f br anch i s t aken, Add one addi t i onal i f br anchi ng

    operat i on cr osses page boundary

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +I NSTRUCTI ON ADDRESSI NG MODES AND RELATED EXECUTI ON TI MES |( i n c l ock cycl es) |

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +

    J L L L L N O P P P P R R RS D D D S O R H H L L O O TR A X Y R P A A P A P L R I

    Accumul ator | . . . . 2 . . . . . . 2 2 .I mmedi at e | . 2 2 2 . . 2 . . . . . . .

  • 8/17/2019 6502_microprocessor.pdf

    16/22

    Zer o Page | . 3 3 3 5 . 3 . . . . 5 5 .Zer o Page, X | . 4 . 4 6 . 4 . . . . 6 6 .Zer o Page, Y | . . 4 . . . . . . . . . . .Absol ut e | 6 4 4 4 6 . 4 . . . . 6 6 .Absol ut e, X | . 4* . 4* 7 . 4* . . . . 7 7 .Absol ute, Y | . 4* 4* . . . 4* . . . . . . .I mpl i ed | . . . . . 2 . 3 3 4 4 . . 6Rel at i ve | . . . . . . . . . . . . . .( I ndi r ect , X) | . 6 . . . . 6 . . . . . . .( I ndi r ect ) , Y | . 5* . . . . 5* . . . . . . .Abs. I ndi r ect | . . . . . . . . . . . . . .

    +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -R S S S S S S S T T T T T T

    T B E E E T T T A A S X X YS C C D I A X Y X Y X A S AAccumul at or | . . . . . . . . . . . . . .I mmedi at e | . 2 . . . . . . . . . . . .Zero Page | . 3 . . . 3 3 3 . . . . . .Zero Page, X | . 4 . . . 4 . 4 . . . . . .Zer o Page, Y | . . . . . . 4 . . . . . . .Absol ute | . 4 . . . 4 4 4 . . . . . .Absol ut e, X | . 4* . . . 5 . . . . . . . .Absol ut e, Y | . 4* . . . 5 . . . . . . . .I mpl i ed | 6 . 2 2 2 . . . 2 2 2 2 2 2Rel at i ve | . . . . . . . . . . . . . .( I ndi r ect , X) | . 6 . . . 6 . . . . . . . .( I ndi r ect ) , Y | . 5* . . . 6 . . . . . . . .Abs. I ndi r ect | . . . . . . . . . . . . . .

    +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -* Add one cycl e i f i ndexi ng acr oss page boundary

    ** Add one cycl e i f br anch i s t aken, Add one addi t i onal i f br anchi ngoperat i on cr osses page boundary

    00 - BRK 20 - J SR01 - ORA - ( I ndi r ect , X) 21 - AND - ( I ndi r ect , X)02 - Fut ur e Expansi on 22 - Fut ur e Expansi on03 - Fut ur e Expansi on 23 - Fut ur e Expansi on04 - Fut ur e Expansi on 24 - BI T - Zero Page05 - ORA - Zero Page 25 - AND - Zero Page06 - ASL - Zero Page 26 - ROL - Zero Page07 - Fut ur e Expansi on 27 - Fut ur e Expansi on08 - PHP 28 - PLP09 - ORA - I mmedi at e 29 - AND - I mmedi at e0A - ASL - Accumul at or 2A - ROL - Accumul at or0B - Fut ur e Expansi on 2B - Fut ur e Expansi on

    0C - Fut ur e Expansi on 2C - BI T - Absol ut e0D - ORA - Absol ute 2D - AND - Absol ute0E - ASL - Absol ut e 2E - ROL - Absol ut e0F - Fut ur e Expansi on 2F - Fut ur e Expansi on10 - BPL 30 - BMI11 - ORA - ( I ndi r ect) , Y 31 - AND - ( I ndi r ect) , Y12 - Fut ur e Expansi on 32 - Fut ur e Expansi on13 - Fut ur e Expansi on 33 - Fut ur e Expansi on14 - Fut ur e Expansi on 34 - Fut ur e Expansi on15 - ORA - Zero Page, X 35 - AND - Zero Page, X16 - ASL - Zero Page, X 36 - ROL - Zero Page, X17 - Fut ur e Expansi on 37 - Fut ur e Expansi on18 - CLC 38 - SEC19 - ORA - Absol ut e, Y 39 - AND - Absol ut e, Y1A - Fut ur e Expansi on 3A - Fut ur e Expansi on1B - Fut ur e Expansi on 3B - Fut ur e Expansi on1C - Fut ur e Expansi on 3C - Fut ur e Expansi on

    1D - ORA - Absol ut e, X 3D - AND - Absol ut e, X1E - ASL - Absol ut e, X 3E - ROL - Absol ut e, X1F - Fut ur e Expansi on 3F - Fut ur e Expansi on

    40 - RTI 60 - RTS41 - EOR - ( I ndi r ect, X) 61 - ADC - ( I ndi r ect, X)42 - Fut ur e Expansi on 62 - Fut ur e Expansi on43 - Fut ur e Expansi on 63 - Fut ur e Expansi on44 - Fut ur e Expansi on 64 - Fut ur e Expansi on45 - EOR - Zero Page 65 - ADC - Zero Page46 - LSR - Zero Page 66 - ROR - Zero Page47 - Fut ur e Expansi on 67 - Fut ur e Expansi on48 - PHA 68 - PLA49 - EOR - I mmedi at e 69 - ADC - I mmedi at e4A - LSR - Accumul at or 6A - ROR - Accumul at or4B - Fut ur e Expansi on 6B - Fut ur e Expansi on4C - J MP - Absol ut e 6C - J MP - I ndi r ect

  • 8/17/2019 6502_microprocessor.pdf

    17/22

    4D - EOR - Absol ute 6D - ADC - Absol ute4E - LSR - Absol ut e 6E - ROR - Absol ut e4F - Fut ur e Expansi on 6F - Fut ur e Expansi on50 - BVC 70 - BVS51 - EOR - ( I ndi r ect) , Y 71 - ADC - ( I ndi r ect) , Y52 - Fut ur e Expansi on 72 - Fut ur e Expansi on53 - Fut ur e Expansi on 73 - Fut ur e Expansi on54 - Fut ur e Expansi on 74 - Fut ur e Expansi on55 - EOR - Zero Page, X 75 - ADC - Zero Page, X56 - LSR - Zero Page, X 76 - ROR - Zero Page, X57 - Fut ur e Expansi on 77 - Fut ur e Expansi on58 - CLI 78 - SEI59 - EOR - Absol ut e, Y 79 - ADC - Absol ut e, Y

    5A - Fut ur e Expansi on 7A - Fut ur e Expansi on5B - Fut ur e Expansi on 7B - Fut ur e Expansi on5C - Fut ur e Expansi on 7C - Fut ur e Expansi on50 - EOR - Absol ut e, X 70 - ADC - Absol ut e, X5E - LSR - Absol ut e, X 7E - ROR - Absol ut e, X5F - Fut ur e Expansi on 7F - Fut ur e Expansi on

    80 - Fut ur e Expansi on A0 - LDY - I mmedi ate81 - STA - ( I ndi r ect, X) A1 - LDA - ( I ndi r ect, X)82 - Future Expansi on A2 - LDX - I mmedi at e83 - Fut ur e Expansi on A3 - Fut ur e Expansi on84 - STY - Zero Page A4 - LDY - Zero Page85 - STA - Zero Page A5 - LDA - Zero Page86 - STX - Zero Page A6 - LDX - Zero Page87 - Fut ur e Expansi on A7 - Fut ur e Expansi on88 - DEY A8 - TAY89 - Future Expansi on A9 - LDA - I mmedi at e

    8A - TXA AA - TAX8B - Fut ur e Expansi on AB - Fut ur e Expansi on8C - STY - Absol ut e AC - LDY - Absol ut e80 - STA - Absol ut e AD - LDA - Absol ut e8E - STX - Absol ut e AE - LDX - Absol ut e8F - Fut ur e Expansi on AF - Fut ur e Expansi on90 - BCC B0 - BCS91 - STA - ( I ndi rect ) , Y B1 - LDA - ( I ndi rect ) , Y92 - Fut ur e Expansi on B2 - Fut ur e Expansi on93 - Fut ur e Expansi on B3 - Fut ur e Expansi on94 - STY - Zero Page, X B4 - LDY - Zero Page, X95 - STA - Zero Page, X BS - LDA - Zero Page, X96 - STX - Zero Page, Y B6 - LDX - Zero Page, Y97 - Fut ur e Expansi on B7 - Fut ur e Expansi on98 - TYA B8 - CLV99 - STA - Absol ut e, Y B9 - LDA - Absol ut e, Y9A - TXS BA - TSX

    9B - Fut ur e Expansi on BB - Fut ur e Expansi on9C - Fut ur e Expansi on BC - LDY - Absol ut e, X90 - STA - Absol ut e, X BD - LDA - Absol ut e, X9E - Fut ur e Expansi on BE - LDX - Absol ut e, Y9F - Fut ur e Expansi on BF - Fut ur e Expansi on

    C0 - Cpy - I mmedi at e E0 - CPX - I mmedi at eC1 - CMP - ( I ndi r ect, X) E1 - SBC - ( I ndi r ect, X)C2 - Fut ur e Expansi on E2 - Fut ur e Expansi onC3 - Fut ur e Expansi on E3 - Fut ur e Expansi onC4 - CPY - Zero Page E4 - CPX - Zero PageC5 - CMP - Zero Page E5 - SBC - Zero PageC6 - DEC - Zero Page E6 - I NC - Zero PageC7 - Fut ur e Expansi on E7 - Fut ur e Expansi onC8 - I NY E8 - I NXC9 - CMP - I mmedi at e E9 - SBC - I mmedi at eCA - DEX EA - NOP

    CB - Fut ur e Expansi on EB - Fut ur e Expansi onCC - CPY - Absol ut e EC - CPX - Absol ut eCD - CMP - Absol ut e ED - SBC - Absol ut eCE - DEC - Absol ut e EE - I NC - Absol ut eCF - Fut ur e Expansi on EF - Fut ur e Expansi onD0 - BNE F0 - BEQD1 - CMP ( I ndi r ect @, Y F1 - SBC - ( I ndi r ect ) , YD2 - Fut ur e Expansi on F2 - Fut ur e Expansi onD3 - Fut ur e Expansi on F3 - Fut ur e Expansi onD4 - Fut ur e Expansi on F4 - Fut ur e Expansi onD5 - CMP - Zero Page, X F5 - SBC - Zero Page, XD6 - DEC - Zero Page, X F6 - I NC - Zero Page, XD7 - Fut ur e Expansi on F7 - Fut ur e Expansi onD8 - CLD F8 - SEDD9 - CMP - Absol ut e, Y F9 - SBC - Absol ut e, YDA - Fut ur e Expansi on FA - Fut ur e Expansi onDB - Fut ur e Expansi on FB - Fut ur e Expansi on

  • 8/17/2019 6502_microprocessor.pdf

    18/22

    DC - Fut ur e Expansi on FC - Fut ur e Expansi onDD - CMP - Absol ut e, X FD - SBC - Absol ut e, XDE - DEC - Absol ut e, X FE - I NC - Absol ut e, XDF - Fut ur e Expansi on FF - Fut ur e Expansi on

    NSTRUCTI ON OPERATI ON

    The f ol l owi ng code has been t aken f r om VI CE f or t he pur poses of showi ngow each i nst r uct i on oper at es. No par t i cul ar addr essi ng mode i s used si nce

    we onl y wi sh to see the oper at i on of t he i nst r ucti on i t sel f .

    sr c : t he byte of dat a t hat i s bei ng addr essed.

    SET_SI GN : set s\ r esets t he si gn f l ag dependi ng on bi t 7.SET_ZERO : set s\ r eset s t he zero f l ag dependi ng on whether t he r esul ti s zer o or not .

    SET_CARRY( condi t i on) : i f t he condi t i on has a non- zer o val ue t hen t hecar r y f l ag i s set , el se i t i s reset .

    SET_OVERFLOW( condi t i on) : i f t he condi t i on i s t r ue t hen t he over f l owf l ag i s set , el se i t i s r eset .

    SET_I NTERRUPT : }SET_BREAK : } As f or SET_CARRY and SET_OVERFLOW.SET_DECI MAL : }REL_ADDR( PC, sr c) : r etur ns t he r el at i ve addr ess obt ai ned by addi ng

    t he di spl acement sr c t o t he PC.SET_SR : set t he Progr am St at us Regi st er to t he val ue gi ven.GET_SR : get the val ue of t he Progr am St atus Regi st er .PULL : Pul l a byt e of f t he st ack.PUSH : Push a byt e ont o t he st ack.LOAD : Get a byt e f r om t he memory address.

    STORE : St ore a byte i n a memory address.I F_CARRY, I F_OVERFLOW, I F_SI GN, I F_ZERO etc : Retur ns t r ue i f t her el evant f l ag i s set , ot herwi se retur ns f al se.

    cl k : t he number of cycl es an i nst r uct i on t akes. Thi s i s shown bel owi n si t uat i ons where t he number of cycl es changes dependi ngon t he r esul t of t he i nst r ucti on ( eg. Br anchi ng i nst r ucti ons) .

    AC = Accumul at orXR = X r egi st erYR = Y r egi st erPC = Pr ogr am CounterSP = St ack Poi nt er

    * ADC */unsi gned i nt t emp = sr c + AC + ( I F_CARRY( ) ? 1 : 0) ;SET_ZERO( t emp & 0xf f ) ; / * Thi s i s not val i d i n deci mal mode */

    i f ( I F_DECI MAL() ) {i f ( ( ( AC & 0xf ) + ( sr c & 0xf ) + ( I F_CARRY( ) ? 1 : 0) ) > 9) t emp += 6;SET_SI GN( t emp) ;SET_OVERFLOW( ! ( ( AC ^ sr c) & 0x80) && ( ( AC ^ t emp) & 0x80) ) ;i f ( t emp > 0x99) t emp += 96;SET_CARRY( t emp > 0x99) ;

    } el se {SET_SI GN( t emp) ;SET_OVERFLOW( ! ( ( AC ^ sr c) & 0x80) && ( ( AC ^ t emp) & 0x80) ) ;SET_CARRY( t emp > 0xf f ) ;

    }AC = ( ( BYTE) t emp) ;

    * AND */sr c &= AC;SET_SI GN( sr c) ;SET_ZERO( sr c) ;

    AC = sr c;* ASL */

    SET_CARRY( sr c & 0x80) ;sr c

  • 8/17/2019 6502_microprocessor.pdf

    19/22

    i f ( I F_CARRY( ) ) {cl k += ( ( PC & 0xFF00) ! = ( REL_ADDR( PC, sr c) & 0xFF00) ? 2 : 1) ;PC = REL_ADDR( PC, sr c) ;

    }

    * BEQ */i f ( I F_ZERO( ) ) {

    cl k += ( ( PC & 0xFF00) ! = ( REL_ADDR( PC, sr c) & 0xFF00) ? 2 : 1) ;PC = REL_ADDR( PC, sr c) ;

    }

    * BI T * /SET_SI GN( sr c) ;

    SET_OVERFLOW( 0x40 & sr c) ; / * Copy bi t 6 t o OVERFLOW f l ag. * /SET_ZERO( sr c & AC) ;

    * BMI */i f ( I F_SI GN() ) {

    cl k += ( ( PC & 0xFF00) ! = ( REL_ADDR( PC, sr c) & 0xFF00) ? 2 : 1) ;PC = REL_ADDR( PC, sr c) ;

    }

    * BNE */i f ( ! I F_ZERO( ) ) {

    cl k += ( ( PC & 0xFF00) ! = ( REL_ADDR( PC, sr c) & 0xFF00) ? 2 : 1) ;PC = REL_ADDR( PC, sr c) ;

    }

    * BPL */i f ( ! I F_SI GN( ) ) {

    cl k += ( ( PC & 0xFF00) ! = ( REL_ADDR( PC, sr c) & 0xFF00) ? 2 : 1) ;PC = REL_ADDR( PC, sr c) ;}

    * BRK */PC++;PUSH( ( PC >> 8) & 0xf f ) ; / * Push r etur n addr ess ont o t he st ack. */PUSH( PC & 0xf f ) ;SET_BREAK( ( 1) ) ; / * Set BFl ag bef ore pushi ng */PUSH( SR) ;SET_I NTERRUPT( ( 1) ) ;PC = ( LOAD( 0xFFFE) | ( LOAD( 0xFFFF)

  • 8/17/2019 6502_microprocessor.pdf

    20/22

    SET_CARRY( sr c < 0x100) ;SET_SI GN( sr c) ;SET_ZERO( sr c &= 0xf f ) ;

    * DEC */src = ( sr c - 1) & 0xf f ;SET_SI GN( sr c) ;SET_ZERO( sr c) ;STORE( addr ess, ( sr c) ) ;

    * DEX */unsi gned sr c = XR;src = ( sr c - 1) & 0xf f ;

    SET_SI GN( sr c) ;SET_ZERO( sr c) ;XR = ( sr c) ;

    * DEY */unsi gned sr c = YR;src = ( sr c - 1) & 0xf f ;SET_SI GN( sr c) ;SET_ZERO( sr c) ;YR = ( sr c) ;

    * EOR */sr c =̂ AC;SET_SI GN( sr c) ;SET_ZERO( sr c) ;AC = sr c;

    * I NC */sr c = ( sr c + 1) & 0xf f ;SET_SI GN( sr c) ;SET_ZERO( sr c) ;STORE( addr ess, ( sr c) ) ;

    * I NX */unsi gned sr c = XR;sr c = ( sr c + 1) & 0xf f ;SET_SI GN( sr c) ;SET_ZERO( sr c) ;XR = ( sr c) ;

    * I NY */unsi gned sr c = YR;sr c = ( sr c + 1) & 0xf f ;SET_SI GN( sr c) ;

    SET_ZERO( sr c) ;YR = ( sr c) ;

    * J MP */PC = ( sr c) ;

    * J SR * /PC- - ;PUSH( ( PC >> 8) & 0xf f ) ; / * Push r etur n addr ess ont o t he st ack. */PUSH( PC & 0xf f ) ;PC = ( sr c) ;

    * LDA */SET_SI GN( sr c) ;SET_ZERO( sr c) ;AC = ( sr c) ;

    * LDX */SET_SI GN( sr c) ;SET_ZERO( sr c) ;XR = ( sr c) ;

    * LDY */SET_SI GN( sr c) ;SET_ZERO( sr c) ;YR = ( sr c) ;

    * LSR */SET_CARRY( sr c & 0x01) ;sr c >>= 1;SET_SI GN( sr c) ;SET_ZERO( sr c) ;STORE sr c i n memory or accumul at or dependi ng on addressi ng mode.

  • 8/17/2019 6502_microprocessor.pdf

    21/22

    * NOP * /Nothi ng.

    * ORA */sr c | = AC;SET_SI GN( sr c) ;SET_ZERO( sr c) ;AC = sr c;

    * PHA */sr c = AC;PUSH( sr c) ;

    * PHP */sr c = GET_SR;PUSH( sr c) ;

    * PLA */sr c = PULL( ) ;SET_SI GN( sr c) ; / * Change si gn and zer o f l ag accor di ngl y. */SET_ZERO( sr c) ;

    * PLP */sr c = PULL( ) ;SET_SR( ( sr c) ) ;

    * ROL * /sr c >= 1;SET_SI GN( sr c) ;SET_ZERO( sr c) ;STORE sr c i n memory or accumul at or dependi ng on addressi ng mode.

    * RTI * /sr c = PULL( ) ;SET_SR( sr c) ;sr c = PULL( ) ;

    sr c | = ( PULL( )

  • 8/17/2019 6502_microprocessor.pdf

    22/22

    * STY */STORE( addr ess, ( sr c) ) ;

    * TAX */unsi gned sr c = AC;SET_SI GN( sr c) ;SET_ZERO( sr c) ;XR = ( sr c) ;

    * TAY */unsi gned sr c = AC;SET_SI GN( sr c) ;

    SET_ZERO( sr c) ;YR = ( sr c) ;

    * TSX */unsi gned sr c = SP;SET_SI GN( sr c) ;SET_ZERO( sr c) ;XR = ( sr c) ;

    * TXA */unsi gned sr c = XR;SET_SI GN( sr c) ;SET_ZERO( sr c) ;AC = ( sr c) ;

    * TXS */unsi gned sr c = XR;

    SP = ( sr c) ;* TYA */

    unsi gned sr c = YR;SET_SI GN( sr c) ;SET_ZERO( sr c) ;AC = ( sr c) ;