You are on page 1of 43

KOMUTYAPISI

Yazlanprogramkodlarbellibirdzendebelleekkadrestenbykadresedoruyerleirler. Dahasonrabellektebulunanbukodlariletildiinde,yerlerininotomatikolaraktespitiiindaha programyazmaamasndaikenkomutunhemenyannailenecekverininadresininotomatikolarak bulunmasnsalayanbazzeliaretlerkonulur.Buiaretlerlebirlikte,bellektebulunanverininCPU tarafndanalnarakilenmesiiinadreslememodlar(tr)gelitirilmitir. Makinadilindeyazlanprogramlarikilisaysisteminegreelealndndan,programcnnileminne yaptnanlamasokzordur.Busebeptenkomutlarbirarayagetirilmibirdizikelimeksaltmas olanhatrlatcharflerdenmeydanagelir.Busembolikdilkullanlarakyazlankaynakifadelerdaha sonramakinadilineevrilir. Buevirmeilemialfabeliksembolikkomutkmesikullanlarakelleyaplabilmektedir.eviriilemi aynzamandaassemblerdenilenbirzelbilgisayarprogramvastasylagerekletirilir.eviriilemi srasndaherbirkaynakifadeveyailemkomutu,kullanlanadreslememodunabalolarakbirile baytarasndailemkoduna(ikodu)evrilir.

1.KaynakProgramAlanlar
Kaynakprogramdakiherbirifade,kullanctarafndanhazrlananalanlardayeralr.Bunlar;etiket alan,ilemkodualan,ilenenalanveaklamaalanlardr.Herkaynakifadeenazbirilemkodu alannasahipolmaldr,ilenenkomuttipinebalolarakkullanlabilirken,aklamaprogramcnn isteinebaldr.Birkomutunkomutcmlesindekikelimelerinksaltlmasndanmeydanageldii belirtilmiti.BunagreLDAkomutuelealnacakolursa: LoadAccumulatorwithoperandcmlesindeki,Loadkelimesindentremitir.BunagreLoad'tanLD, AkmlatordendeAharflerialnarakLDAkomutuoluturulur.DierbirkomutolanBCS,Brachon CarrySetcmlesindekikelimelerinbaharflerialnarakoluturulmutur. Btnbukomutksaltmalarmikroislemcifirmalartarafndanmeydanagetirilerekmikroilemci tantmkitaplarvaslasyladnyayayaylmaktaolup,kullancbukaynakkitaplardakikomut kmesindenfaydalanarak,assemblydilindeprogramlaryazabilir.

1.1.EtiketAlan
Daimaseimlikolanbualan,birsaysaldeereveyabellekalannakarlkgelebilir.Belleekarlk gelenbusembolikreferans,belleinkendisaysaladreskarlnnkullanmngerektirmez.Mesel, TARAilenenetiketi,bellekteherhangibiryerdeolabilir.EtiketlerherhangibirBRANCH,JUMPveya CALLkomutunun(altyordama)daladresiolabilir.Yanibirsatrnadlandrlmasndakullanlabilir. Etiketleraslabirrakamlabalamazlar.BanamutlakaA'danZ'yebirharfingelmesigereklidir.Bu harftensonraistenensaysaldeerleraltkarakterigememekartilekullanlabilir.A,XveYgibi harfler,akmlatrveindisikaydedicilereadolarakverildiindenkullanmlarkstlanmtr.Dalma, arvesapmakomutlarnabalolarakkullanlanetiketler,programsaycsnayenibirdeerin atanmasnveprogramnaknndeimesinisalarlar.

Tablodakikkprogramparasnabakldnda,ARAveTARAisimlietiketlerkullanlmtr.Burada ARAetiketi,programnyabiraltprogramndaladresiyadabiraradaladresiolduunu,TARAise, arananbirartngereklemesihalindedalnacaksembolikadresigsterir.Etiketinkullanm sebepleri: 1.Etiket,programalannnkolaylklabulunmasnvehatrlanmasnsalar, 2.Etiketeerprogramdabirdeiiklikveyabirdzenlemevarsa,kolaycahareketettirilebilir, 3.Etiketkullanmylaassemblerveyaykleyici,programayenidenyerletirmesabitieklenerek,her biradreseyenidenyklenebilir.

1.2.lemKoduAlan
koduveyakomutalandenilenbuyerde,ksacayaplacakolaniinkomutlarbulunur.Komut kelimelerininksaltlmeklinemnemonic(hatrlatc)denilir.56farklkomututemsiledenksaltlm olanbuharfler,lveyadrtlgruplardanoluur.Bualanetiketalanndanbirtabaralklolmaldr.

1.3.lenenAlan
Operandalandadenilenbualanailenenegerekduyankomutlarnveriveyaadrestanmladklar yerdir.lenenilemkodualanndanenazbirboluklaveyaikibokaraktersekmesiyleayrlr.

Semboller,ilenenalanndabulunan,ilenecekolanbilgininnnekonulanvebilgiyezelanlam kazandraniaretlerdir.

Yukardakitablodagrldgibi,ileneninnetipbirbilgiolduunneveyasonunakonulanzel iaretlerdenbelliolur.Eerileneninnndetakkullanlmisesontakkullanlmaz.Eerilenenin sonundatakkullanlmsantakkullanlmaz.Buradadikkatedilmesigereken,eerilenen dorudanbirveriise,verininnnebir#(diyez)konulduktansonrahangiverigrubunagiriyorsa onunlailgilizeliaretverininsonunayerlelirilir.Eerilenenalanndaadrestanmlamas yaplyorsa,buradakitanmnnnentakolarak$iaretigelir. Elleyaplanmakinakoduevrimlerindegenellikleheksadesimalkodlarkullanlmakladr.

1.4.AklamaAlan
Bualandaimaseimlikolup.istenildiiveyagerekliolduuyerlerdekullanlr.Aklamaalanndaki notlar,komutlarveyaiaretlerassemblertarafndandeerlendirilmez.Buradakibilgilerprogramc tarafndandahasonraprogramnaknnizlenmesiveyabirbakastarafndanprogramn yrtlebilmesimaksadylakullanlr. Aklanandrtalanlailgilibilgilerinbirbirinekarmamasiinalanlarnarasnakonulankarakterlere ayrclardenilir,bunlarassemblydilindekiprogramndahakolayanlalmasveokunabilmesinde programcyayardmcolurlar. Ayrclardanenokkullanlanlarunlardr: "boluk":Etiketileikoduveikoduileilenenarasndakullanlr. ",": lenenalanndaadresileekparametrearasndakutlanlr. ";","!":Aklamaalannda,aklamadanhemenncekullanlr. ":": Etiketalanndaetiketsonundakullanlr(TOPLA:gibi).6502'dekullanlmayanbuayra. Inlel'in8085ve+ilemcilerindedalnacakadresinaynsayfadaveyablmdeolduundakullanlr.

2.AdreslemeModlar
Bellektekiverilerinadreslenmesindekullanlanfarklyollaraadreslememodlardenir.6502 mikroilemcisizamandailemcilerdendahafazlasayda(13eit)adreslememodunasahiptir. Aada13farkladreslememodundanenokkullanlan8tanesiverilmektedir.

2.1.AkmlatrvemalAdresleme
BuadreslemetrdorudanAkmlatrkaydedicisinikullandndanbuadalmtr.Dahaoksaa veyasolakaydrmavedndrmekomutlarnierir.Bunlar;ASL,LSR,ROLveRORgibikomutlardr. Kaydrmakomutlarkastedilenkaydediciyiveyabirbellekalann1bitASLilesola,LSRilesaa kaydrr. maladreslemedeharicibirilenenbulunmamaklabirlikle,adreskomutierisindeimaedilmekledir. (saklanmaktadr).Mesel,DEXkomutundaXkaydedicisininieriibirazaltlacakdemektir.Burada imaedilenkaydediciX'dr.Verinintanmlanmasndailavebiradreslemeyegerekyoktur,imal adreslemeyeCLC,SED,DEY,INX,NOP,PHA,RTI,TAXgibikomutlarrnekolarakverilebilir.

2.2.VeriTanmlAdresleme
Veritanmladreslememodu,akmlatrveyaindiskaydedicilerzerindealacak2baytlk komutlarnkullanlmasnaizinverir.Komutunbirincibaytkomutkodu,ikincibaytileneniindir. kincibayt,bellektenbirdefadagetirilenveridirvebellektendahafazlaverigetirmeyegerekyoktur.

Veritanmladreslememodunarnekolarakekildekirnekgsterilebilir.ADC#$25komulundaki25 saysbironaltlkilenendir.Bellektekiprogramalanndahemenkomutkodundansonragelir.ADC komutununkodu69'dur.Bukomutunzerindealacaveriise25saysdr. Buveri,belleinverialanyerinedorudanprogramalanndatanmlandiin,buadresleme modunaveritanmladreslememodudenilmekledir.ADCkomutuilekomutkodundansonragelen veri,akmlatrierisindekiveriveC(elde)bayrakbitibirliktetoplanaraksonutekrarakmlatre atlr.EerC=0kabuledilirsebukomutsatrsonundaAkaydedicisindeA=25+15+0=3AH grlecektir.

2.3.MutlakAdresleme
Buadreslememoduyla64KB'lkbellekalanndakiherhangibirbellekalanadreslenebilir.Mutlak adresleme,ilenenalanndahedefadresintamolaraktanmlanmasdr.Buadreslememodubellekle 3baytlkyertutar.Bellek16bitlikadresyoluylaenok64KB'lkbirbellekuzayniaret edebildiinden,16bitlikbirmutlakadreskaydedicilerdeveyabellekteikiyeblnereksaklanabilir. 4hanelionaltlksay64KB'lkbirbelleiadresleyebilmekiintoplam16bitlikadresyolunagerek duyar.16bitlikadresbellektedkdeerliklitarafnceyksekdeerliklitarafdahasonrasaklanr. Yaniadresin8bitlikLSBtarafdkadreste,dier8bitlikMSBtarafbirsonrakiadrestesaklanr. Mutlakadreslememoduekilegreaklanrsa,ADC$20E4komutubelleinprogramalanndakk adrestenbalamakzere6DEA20olaraksaklanr. Busatrilendiinde,PC'ningsterdii0200HadresindenADCkomutununkodu(6D)alnpgetirerek koduzlr.Buzm,kodtansonragelenardkikiverininzerindeilemyaplacakesasverinin adresiolduunuifadeeder. Byleceilemci20E4HadresinegiderekoradakiA5HverisinialarakakmlatrdekiveriveC'yide katarakilemyapar.A=A+[20E4]+Colarakifadeedilir.

2.5.GreceliAdresleme
GreceliadreslememoduBNEveBEQgibiartldallanmakomutlarilebirliktekullanlmaktadr. Greceliadreslemede,programsaycnnieriipozitifveyanegatifolabilenyaylmfaktrile deitirilir.Bellekteicraedilecekolankomutunetkinadresigrecelibiradrestir,butipadreslemede koulanartdoruysa,CPU'dakiProgramsaycsdalnacakadresialarakprogramburaya ynlendirir. Etkinadresinhesaplanmas,oankiprogramsaycsnndeerinepozitifveyanegatifofsetdeerinin eklenmesiyleyaplr.Pozitifofsetdeeriadresinileriyedoruartmas,negatifofsetdeeriadresin geriyedoruazalmasdemektir.Dallanmakomutlar,eerartsalanmsadenetiminileriyada geriyeyaplmasna,eerartsalanmamsadallanmakomutundansonrakisradakikomuta aktarlmasnasebepolurlar.leriveyageriyesapmalar128ile+127arasndaoynamakladr.

Greceli adresleme modu leri ofsetle aklanrsa:


0204 BCC 0205 04 0206 (PC burada,eer C=1 ise) 0207 0208 0209 020A (PC burada,eer C=0 ise) 020B

Greceli adresleme modu geri ofsetle aklanrsa:


0204 (PC buray gsterir,eer C=1 ise) 0205 0206 0207 0208 BCS 0209 FA 020A (PC burada,eer C=0 ise) 020B

rnekte;Cbayranabaklarakilerisapmailemielealnmaktadr.Komut,0204adresindeikodu, 0205adresindeofsetdeeriyeralmaktadr.BCCdallanmakomutualrkenPC0206no'luadresi iareteder.Eerartgereklemezsealmayabuadrestenitibarendevamedilir.Eerart gerekleirse,PC'ninoankideerine(0206)ofsetdeeri(04)eklenerekdalacaadreshesaplanr (PC=0206+04=020A). BCSkomutualtrlrkenPC020Aadresinigsterir.Grecelidallanmailemindehedefadres hesaplamas,PC'ningsterdiiadreseofsetdeerieklenerekyaplr.PC=020A,ofsetFAise. 020A+FA=0204bulunur.BuradaadresinLSBtarafgznnealrkenherhangibireldehesaba katlmaz. Dallanmasahas+127128arasndadeienbuadreslemeyegreceliadreslemedenir.

2.6.ndisliAdresleme
Etkinadres,tabanadreseXveyaYkaydedicisindebulununverieklenerekbulunur.Buadresleme trndekomutbirbaytalrkenilenendeikibaytlkyeralr.Aynsayfaykullanmda4saatsaykl ekenbutipkomutaeer,bakasayfadakibiradrestarifediliyorsa1saykldahaeklenmelidir. Eerkomutunilenenksmndatabanadresimutlaksa,buadreslememodunamutlakndisli adreslemedenir.Adresmutlakdeilse$20gibi,buadreslemeSfrncsayfaadreslemetrdr.

ADCkomutu,Xindiskaydedicisininkapsamn(05H)tabanadresiolarakbelirtilen20Hsaysyla toplayarakyenibiretkinadresbulur(0040+05)vebuadrestekiE7Hveriyleakmlatrn(A) ierisindekiveriyi(15H)C'yidegznnealaraktoplar.A=A+[0040+05]+C.Buadreslememodu bellekte2baytlkyertutarken,4saatevrimieker.nketkinadresadndandaanlalacagibi sfrncsayfadadr.BuadreslemedeYindiskaydedicisikullanlmaz. Eermutlakindisliadreslememodunabirrnekverilirse;ADC$4055,YBukomutla,Yindis kaydedicisininierii(05H)tabanadres[4055]'eeklenereketkinadresbulunur.Buyeniadrestekiveri akmlatrdebulunanveriylekarlatrlrvehemenbirartlkomutlasonusorgulanarakPC ynlendirilir.

2.7.DolaylAdresleme
Buadreslememodumutlakadreslemeninbiraltkmesidir,fakatsadeceJMP(Jump)artszdalma komutunauygulanr.JMPkomutuaynzamandamutlakadreslemeyidekullanr.Bumoddakomutun ikincivencbaytlaretkinadresinyerletirildiiadresikapsar. 6502mikroilemcisininJMPkomutu,mutlakadreslemevedolaylmutlakadreslemetrnnikisini dekullanabilir.BuradaJMPkomutu,birsonrakiilenecekkomutunadresiniprogramsaycsna ykler.Mutlakdolayladreslemede,JMPkomutununileneni,16bitlikhedefadresiierenikibellek alanndanilkininadresidir.

MutlakdolayladreslemeyeekildegsterilenJMP($1234)ifadesinirnekgsterilebilir. JMPkomutununmutlakdolayladreslemedekikoduolan6Cbellekteilkyerialrken,dalnacakgerek adresinbulunduuyerinilkadresinigsterenadresdehemenondansonragelir.Saplacakadres dorudantanmlanmyor,fakatbununyerineadresierisindeadrestarifedildiindenbu adreslemeyedolayldenmektedir. Mutlakdolayladreslemebize,deikenhedefadreslealmaimknsalar.Mesel,birkaevre cihazmservisverecekbirsisteminieririnde6502ilemcisivarsa,buevrebirimlerinehizmet edecekolankomutdizilerininbulunduubloklaraJMPkomutununmutlakdolayladreslemesiyle eriilebilir.

BudurumdamutlakdolaylJMPkomutu,daimaaynbellekalaniftinden16bitlikadresialp getirebilir.Fakat,herhangibirevrecihaznnservisistediinebalolarakilemcibualanlarn ieriinideitirebilir. Veriilemeilemlerinde,tekbir6502mikroilemcisibirdenfazlaoperatrnkullandklavyeden verikabuledebilir.Budurumda,6502'nindalacahedefadres,herhangibirandailemcininvericini kabuletliiklavyeyebaldr.Birinciklavyedengirilenverilerbellektebiryere,ikinciklavyedengirilen verilerbelleklebakabiryerevedierlerideaynekildeyerletirilir.Aynzamandabuadresleme tr,ROM'dakiprogrambloununokunmassrasndadakullanlabilir.

2.8.ndisiliDolaylAdresleme
Buadreslememodundailenenalanndanceindislemesonradolaylamayaplr.lkolaraknindis dolayladreslemededenilen,indisilidolayladrestemeyernekverilirse; ADC($20,X) ndisliadreslemede,tabanadreseindiskaydedicisininieriieklenerekikinciadreseverininetkin adresinevarlyordu.Dolayladreslemede,komutunilenenksmndakietkinadreslebuadrese komubirsonrakiadresbirletirilerekgerekadresbulunur.

ekilegre,ADC($20,X)komutunun,nindisdolayladreslememodunukullanmasndandolay, sfrncsayfayiareteden20Htabanadresine,8bitlikveenfazlaFFH(255)deerialabilecekX indisindebulunanverieklenerektanmlanangerekadresbulunur. EerXindisinde05Hverisivarsa,bununtabanadresiyletoplanmashalinde20H+05=25Holur. Bellektekibuadres(0025H)vebundanbirsonraki[0025H]adresinierikleri,ncedkadresteki (1AH),sonrayksekadrestekiveri(00H)alnarakDAR'akonulur(001AH)veilemcibuyenietkin adrestekiveriyi(AAH)akrmlatrdekiveriileC'yidedikkatealaraktoplar. BuradatabanadresineX'indeerinineklenmesiilemineindislemevebulunanbuadresvebir sonrakiadrestekiverilerinalnarakyenibiradresoluturmaileminededolaylamadenilir.

2.9.DolaylndisliAdresleme
DierindenfarklolaraksadecetabanadresinparantezierisinealnmasveYindisininbunundnda tutulmasdr.Buadreslemeyernekolarakaadakikomutsatrverilebilir: ADC ($20),Y

Buadreslemetrndekomutunikincibaytyaniilenenksmdierindeolduugibibelleinilk0 255'likksmndabiradresitarifeder,fakatetkinadresdahadeiikbiryerdeolabilir.

3.KomutTipleri
6502mikroilemcikomutkmesindebulunankomutlaraadadr:
ADC AND ASL BCC BCS BEQ BIT MBI BNE BPL BRK BVC BVS CLC CLD CLI CLV CMP CPX CPY DEC DEX DEY EOR INC INX INY JMP JSR Eldeyle birlikte bellei A'ile topla Bellei A ile mantksalolarak arp Aritmetik 1 bit sola kaydr Eldeki 0 ise dallan Eldeki 1 ise dallan Sonu 0 ise dallan Bellekteki bitleri A'dakilerle test et Sonu negatifse dallan Sonu sfr deilse dallan Sonu pozitifse dallan Program durdur Tama sfrsa dallan Tama birse dallan Eldeyi sil Ondalk modu sil Kesme yetkisizlik bitini sil Tama bayran sil A ile bellei karlatr X ile bellei karlatr Y ile bellei karlatr Bellein deerini bir azalt X'in deerini bir azalt Y'nin deerini bir azalt A'y bellekle mantksal EXOR'la Bellein deerini bir artr X'in deerini bir artr Y'nin deerini bir artr Yeni bir alana dallan Dn adresini saklayarak yeni adrese dal LDA LDX LDY LSR NOP ORA PHA PHP PLA PLP ROL ROR RTI RTS SBC SEC SED SEI STA STX STY TAX TAY TSX TXA TXS TYA Bellei A'ya ykle Bellei X'e ykle Bellei Y'ye ykle 1 bit saa kaydr lem yok Bellei A ile OR'la A'y yna at Bayraklar(P) yna at A'y yndan geri ek Bayraklar yndan al Bir bit sola dndr Bir bit saa dndr Kesmeden dn Altprogramdan dn Bor ile A'dan kar Elde bayran birle Ondalk bayran birle Kesme bayran birle A'y bellee at X'i bellee at Y'yi bellee at A'y X'e aktar A'y Y'ye aktar SP'yi X'e aktar X'i A'ya aktar X'i SP'ye aktar Y'yi A'ya aktar

Bublmdeilenecekolankomutlardakullanlacaktanmlamaveksaltmalarnanlamlaryledir:

A X Y PC SP P

Akmlatr X indis kaydedicisi Y indis kaydedisici Program Saycs Yn aratisi Bayrak Kaydedicisi

Komutlaryaptilemleregregruplaraayrlr.Bugruplarunlardr: 1.VeriManevra(Aktarm)Komutlar 2.AritmetikVeMantkKomutlar 3.Giri/kKomutlar 4.VeriTestvelemeKomutlar 5.ProgramKontrolKomutlar

4.1.VeriAktarmKomutlar
Bukategoriyegirenkomutlar,8bitlikverilerinbirmahaldenbirbakamahale,mikroilemciilebellek arasndaveyamikroilemciileG/elemanlararasndatransferinigerekletirirler.Bellektenbellee dorudanveriaktarmkomutuyoktur.BudurumdaCPUgibiaracelemangereklidir.Verince bellektenakmlatrealnr,dahasonradadierbellekalanlarnaaktarlr. Veriaktarmilemlerikendiarasndaaltgrubaayrlrlar:Aktarmbelleklekaydediciarasnda, kaydedicidenkaydediciyeveynaveriatpgerialmaeklindeyaplabilir.

4.1.1.BellekKaydediciAktarm
BellektenkaydediciyeverialndaLDA,LDXveLDYgibiyklemekomutlarndanfaydalanlr. Komutlarnsonundakiharfler,Akaydedicisini,XindiskaydedicisiniveYindiskaydedicisinihedefler. Verininalndbellekmahalleri,komutunilenenksmndaifadeedilir.Buadresler,mutlak,indislive veritanmlolabilirken,bayraklardanZveNbayranetkilerler.

Kaydedicilerdenbelleedepolamaveyasaklamakomutlar,STA,STXveSTY'dir.Bukaydedicilerdeki bilgiilenendehedeflenenbelleeaktarlr.Buaktarm,ilemelerindebayraklarabiretkiolmaz.Veri aktarmilemlerinde,kaynanieriideimezken,hedefinieriideiir. Meselbelleinbiryerindekiverialnarakbakabiryereatlmailemiiinbasitprogramyaplrsa:

LDA STA

$0200 $2025

; A [0200] ; [2025] A

Burada[0200]adresindekiveri(verinindeerinemlideil)akmlatrealnaraktekrarbakabir yere,[2025]adresinetransferedilmekledir.[2025]adresindebulunandahancekiveriaktarlanyeni deerinaltndasilinirken,[0200]adresindekiveriaynenkalr. rnekProgram1:Birgrupverininbellektebakabiryerekopyalanmas [0020]no.lubellekalanndanitibaren5baytlkverigrubunu,[0040]no.luadrestenbalamakzere bakabirbellekalannakopyalanmas.Bellektehangiverilerinolduunemlideildir. ProgramdaXindisiolarakYdesayaolarakkullanlmaktadr.BundandolayX'e0,Y'yekaadetveri kopyalanacaksaonundeeri(5)yklenir.LDA$20,XilebloktanilkveriAkaydedicisinealnr. AkaydedicisindekiveritanacakilkbloaSTA$40,Xkomutuylayklenir.Beadetveridenbirisi kopyalandndanXindisisiINXkomutuylabirartrlr.BununlabirlikteYsayacDEYkumutuilebir azaltlr.BuilemlerY=0olanadeksrdrlr.Y'nin0olupolmadna,BNEkomutuylabaklr. HerseferindeDEYbirazaltldndanbeilemsonucuY=0olur.BudurumdaZbayra1olur.BNE komutuherdefasndaZbayrana0olupolmadnabaktnagre,Z=1olduundaTASINetiketine gitmeyeceindenbirsonrakiBRKkomutunageer.Z=0olduundadahakopyalamabitmedi demektir. Eer5veridendahafazlaveritanacakveyakopyalanacaksa,Yindiskaydedicisineokadarveri yklenir.ProgramotomatikolarakY=0oluncayadekilemedevameder.0olduundailemi sonlandrr.

4.1.2.KaydedicidenKaydediciyeAktarm
6502komutkmesindebununlailgialtkomutbulunmaktadr.Bukomutlarimladreslemetrn kullanrkenbellektetekbaytlkyerkaplarlar.Komutyanndailenenegerekyoktur.Kaydediciden kaydediciyeaktarmkomutlar;TAX,TAY,TXA,TYA,TSXveTXS'dir.

Buradakomutunortasndakikaydedicidaimakaynak,sondakikaydediciisehedefolarakanlr. TXS'nindndadierkomutlarNveZbayraklarnaetkiederler. TXSkomutu,programclartarafndanprogrambalangcndayniaretisini(SP)hazrlamada kullanlr.SPdaimayndakibirsonrakullanlabilecekbellekalanniareteder.


LDX TXS #$FF ;Ynn dibini gsterecek veriyi hazrla ;ve yn iaretisine aktar.

4.1.3.YnAktarmlar
Veri,akmlatrdenyna,yndanakmlatrevedurum(P)bilgileriyna,yndantekrar durumaaktarlr.6502mikroilemcisindeynolarakkullanlacakbellekblou1.sayfadr.SP'nin MSB'likdrtbiti1.sayfayiareteder.DierLSB'likdrtbitise,ynn256bellekalanndanbirisini gstermedekullanlr.Ynaatlanbirveri,SP'nindeerininbirazalmasnasebepolurkenyndan geriekilenbirveriyledeSPtekrarbirartar. Ynkullanmikimaksatlagerekletirilir: Kesmelerecevapvermevealtyordamlaradalmalardadnadresininsaklanmas, Kaydediciierikleriningeiciolaraksaklanmas PHAkomutu,SP'ningsterdiiilkynalannaakmlatrnkapsamnatarken,SPbirsonrakibo alanngstermekiindeerinibirazaltr.Builembirprogramlailenirse:
0200 0202 0203 0205 LDA PHA LDA PHA #$A5 #$67 ; A=A5H ; A'y yna at ; A=67H ; A'y yna at

Programbuekildedevamederkenyndageiciolaraktutulanbuveriler(A5Hve67H),tekrar yndanPLAkomutuylaekilerekkullanlr.Ynaatlanveriler,LIFOsisteminegresongirenilk karmantilesonatlan67Hverisiilknceekilir.PLAkomutunceSP'nindeerinibirazaltarak 01FE'yedrrveburadaki67HverisiniAkmlatreaktarr.DahasonraikincibirPLAkomutuyla A5Hverisiyndanekilir.

PHPkomutu,bayrakkaydedicisinin(P)kapsamnynaalmadakullanlr.Birilemyaplrkenoanda bakabirarailemyaplmasgerektiinde,tekrareskiileminartlarnbulmakiindurum(bayrak) bilgilerigeiciolarakyndasaklanrvePLPkomutuylayndanekilerekprogramakalnanyerden devamedilir.

4.2.AritmetikveMantkKomutlar
Adndandaanlalacagibibukategoriyegirenkomutlar,aritmetikkomutlar,mantkkomutlar, kaydrma,komutlar,artrma/azaltmakomutlarvekarlatrmakomutlardr.Karlatrma komutlardalmavesapmakomultarylabirliktedahaokkullanldklarndanbublmdeyer alacaktr. 6502mikroilemcikomutkmesinde,toplamavekarmailemlerindekullanlankumutlardan sadeceADCveSBCkomuttanbulunurken,dierbazmikroilemcilerde(6800,8085)ekolarakADD veSUBkomutlarvardr.arpmaveblmeilemleriniyapandorudanbirkomutolmayp,verinin saaveyasolakaydrlmasesasnagrealan,ASLveLSRkomutlarvardr. Mantkkomutlar,AND,OR,veEXORkaplarnnilevleriniyerinegetiriler.

4.2.1.Toplamalemi
SekizadreslememodunukullanabilenADCkomutu,ilenenindeerini,eldeileCbirlikle AkmlatrdekisayylatoplayarakyinesonucuAkumlatreatar.Buileminsembolikgsterimi yledir: [A][A]+[M]+C Buradaki[M],ADCkomutununilenenksmndabulunanveriyiveyabelleklebulunanbirveriyitemsil etmektedir.Toplamailemi,durumbayrandakiD'nindurumunagre,yaikilisaykodundayada BCDkodundayaplr.Toplamavekarmailemlerindeverileriaretliveyaiaretsizbirlikte kullanlabilir.Programcnetipbirverikullandnbilmekzorundadr. ADCkomutuilenirkenbirncekiilemdenbireldevarsabuCbayrandatutulur.Dahasonraelde komutlabirliklehesabakatlr. kitabanlsaylarsadansoladorunumaralandrlrken,enarlklbitensoldaki(MSB)veenaz arlklbit(LSB)ensadadr.Birbaytlkbirveriiaretsizolarak0'dan,255'ekadardr.

aretlisaylardadkarlklbittenbalamakzere6bitsaynniaretsizsaydaolduugibigerek deerinigsterirken7.bit,yaniensoldakiMSBbitiiaretbitiolarakkullanlr.Eer7.bit0isesay pozitif,1isesaynegatifdemektir.aretlisaylarnikiliifadesisaynngerekdeerinigstermez bununyerineiaretlisaynngerekdeerininikilitamamlayanalnr.Budurumdaanlamszikili saysaldeerlerkabilir. aretlisaylarda8haneliikilitamamlamalformdagsterilen+127enbyksayiken,ikili tamamlamalformdaenbyknegatifsay128'dir.Busebeple,busaysistemiyle+127ile128 arasndakigerektamsaylarveisaretlisaylar8bitlikbiralandagsterilebilir.

BCDkodluaritmetikilemlerde,herbayt4bitolarakdnlrveherbayt,0ile99arasndaki saylargsterir.

MikroilemciiindekiAritmetikveMantkBirimi,toplamavekarmailemlerisrasndaikiliekleyici veyaondalkekleyicigibialr.kiliekleyiciolarakalmasrasndaALU,8bitlik00000000Bile 11111111Barasndakideerlerleilerken,ondalkeklemedeiki4bitlikBCDmodundapaketlenmi hanelerleiler.

Toplamaileminebirrnekverilirse:
CLC LDA ADC ; C=0 ; [A]=25H ; [A] [A] + [0040] + C

#$25 $40

Programsatrsatrelealnacakolursa,ilksatrdaCLCilebirncekiprogramdankalanveuanki programaetkiedebilecekartklardankurtulmakiinCbayrasilinir.SonraA'ya25Hverisiyklenir. SonrakiadmdaA'dakiveri.[0040]no'luadrestekiveriveC(elde0)hesabakatlarak(buveri toplanarak)sonuyineA'yaatlyor. rnekProgram2:Bellektekibirdizisaynntoplanmas Bellektesralbeadetsaysaldeerintoplanmasvesonucunbakabirbellekalannaatlmas ileminingerekletirilmesi.Bellektekitanmlilkalanda[0020]dizininuzunlukdeeriolduuve eldenin(C)gznnealnmayacavarsaylmtr.

Akmlatr(A)veindiskaydedicilerindenbirisi(X)balangtasfrlanr.LDA#00ileA=0'lanrve sonraTAXileA'dakideerX'ekopyalanr.BudurumdaA=X=0olur. [0203]adresindekiCLCkomutuyladahancekiilemlerdenCarndrlr(C=0). ADC$20,Xkomutu,A=A+[0021]+Cileminiyerinegetirdiinden,balangtaA=C=0olduundan sadece[0021]no.luadrestekiveriA'yatoplanr. DahasonraINXileindisibirartrlrve[0020]no.luadrestekisayabilgisiilekarlatrlr(CMP$20).

EerX'indeerisayabilgisineeitdeilsetoplamaileminedevametmekiinTOPLAetiketine saplr.EitsebirsonrakisatrageilerekA'dabiriktirilendeerSTA$40komutuyla[0040]no.lu adresesaklanr.

4.2.2.karmalemi
karmakomutuSBCile,A'dakideerdenbellekalanveeldekideerkarlr.Sonuyine Akmlatrdekalr.Bor,eldebayrannterslenmihaliolarakdnlr.Buileminsembolik gsterimiyledir; A=AMC karmailemi,toplamadaolduugibi,hemikilisaylarlahemdeBCDmodundayaplabilir.Buradac =(1C),okbaytlkarmailemlerindekullanlr.C'nin0olmassonucaetkietmez.nkC=1ise, tersi0olacaktr.karmailemindennceSECkomutuylaC'nn1'lenmesisalanr.kilikarma ilemindeikilitamamlamailemikullanlr.Builembirrnekleaklanrsa: SBC$40 ;A'dan[0040]bellekalan+C'yikar.

A=23H,[0040]=B1HveC=0ise,A=A[0040](1C)olarakdahasonrada,[A]=[A](M+C)olarak dzenlenebilir.BurudanverileryerinekonularaksonukolaycabulunabilirveA=23HB1H(10)=23H (B2H+1)=23HB2Holarakyazlabilir.A'dakigereksonu,B2H'ninikilitamamlamasalnpve[A]'daki deerletoplanarakbulunur.Ondalkmoddakarmaprogramyazlacakolursa:


SED SEC LDA #$57 SBC $40 STA $41 ;Ondalk mod bayran 1'leyerek BCD'ye ayarlar ;C bayran etki etmeyecek ekilde ayarla ;A <---- 57H ;A= A - [0040] - C ;[A] ----> [0041]

ProgramnbalangksmndaondalkmodbayraD,BCDmodunaveEldebayraC=1ayarland. DahasonraA'yayklenen57saysile[0040]adresindekideerinikilitamamlamasalnarak topland.Sonu[0041]adresineatld. Buradadikkatedilmesigerekennemlibirhususta(V)tamabayradr.Bubayrakgeneldeiaretli saylarlayaplanilemlersonucundaetkilenir.Vbayrasadeceilemsonundaakmlatrdekisonu geersizseaktifoluryani1'lenir. AynekildeVbayra,eersonu+127'denfazlaysaveya128'dendahanegatifse1olur.Aksi takdirdeVtamabayraetkigrmez.TamabayratekbaytlkCLVkomutuiletemizlenebilir.Ayrca bubayraklarADCveSBCkomutlarndannceotomatikolarakresetlenmiolmaldr.

4.2.3.MantkKomutlar
Bugrubagirenkomutlar,akumlatrdekideerlebellektekideerbitbitmantkileminetabii tutulduktansonrasonuakumlatrdekalr.Mantkilemleriyleilgili6502mikroilemcikomut kmesindekomutvardr.Bunlar:AND,ORAveEOR'dur.Bitbityaplanbuilemlerebirrnek verilecekolursa:
b7 1 0 0 1 1 b6 0 1 0 1 1 b5 0 0 0 0 0 b4 1 1 1 1 0 b3 0 1 0 1 1 b2 0 0 0 0 0 b1 1 1 1 1 0 b0 1 0 0 1 1

; A'daki deer ; lenen deer ; AND sonucu ; ORA sonucu ; EOR sonucu

Tablo - Mantk komut rnekleri

BtnbuilemlerN(Negatif)veZ(Sfr)bayranaetkiederken,sonuAkmlatrdekalr. ANDkomutu,dierbitlereetkietmedenistenenbitinmaskelenmesindekullanlr.Programc bellektekibirdeerinhangisinitemizleyecekseonagreA'yadeeratmaldr.Bumaskelemeteknii, skolarakveriszcnnistenenbitlerininizolsyonundakullanlr. ORAkomutuAND'intersineistenenbelirlibitlensetlemede(1)kullanlrkenEORkomutu,dier bitlereetkietmedenbelirlibitleriterslemedekullanlr.imdibtnbukomutlarbirprogramparas dahilindeincelenirse:

LDA AND ORA EOR STA BRK

#%00111011 #%11101111 #%10101010 #%11111111 $41

; orijinal veriyi A'ya ykle ; sonu: 00101011 olur. ; sonu: 10101011 olur. ; sonu: 01010100 olur. ; A----> [0041]=01010100

ProgramdaA'ya00111011Bverisiyklenerek,11101111Bverisiylebitbitmantksalolarakarplr. Builemdekimaksat,4.bitimaskelemektir.Burada0yutucubirelemanolarak4.bitisfrlar.Daha sonraA'dakibudeerORAvastasyla,10101010Bilebitbitmantksalolaraktoplanr.

DahasonraORAkomutununsonucuA'yaalndktansonraA'dakiveri11111111BverisiileEXOR ileminetabiitutulur.A'dakideerleilenendeerdekikarlklhanelerbirbirindenfarklysa,sonu olarakohanedekideer1olur,aynysaohanesonucu0olur.Dahasonragereksonu[0041]no'lu adreseatlr. rnekProgram3:Birbaytlkbirverininikiparayaayrlmas [0030]adresindekibirverininikiparayablnerekLSBksmnn[0031]adresineveMSBksmnn [0032]adresineatlmasileminingerekletirilmesi.

Birbaytlkverininkkdeerliklitaraf(LSB)[0031]adresine,bykdeerliklitaraf(MSB)[0032] adresineyerletirilmekistenmektedir.BudurumdaparalanacakveriakmlatrealnarakAND komutuylaMSBtarafsfrlanrveaynenkalanLSBtarafylabirlikle[0031]adresineatlr.

DahasonraMSBtarafndaki4bitLSBtarafnaekilmesiiin4defasaakaydrlr.Byleceorijinal verininMSBtarafLSB'yekaydrlrkenMSBtaraf(4bit)sfrlanr,Akmlatrdekibudeer[0032] adresineatlr.Budurumda,eer[0030]adresindekiorijinalverininABolduudnlrse,ilem sonunda[0031]adresinde0B,[0032]adresinde0Adeeriolacaktr.

4.3.KaydrmaveDndrmeKomutlar
6502'dedirektarpmaveblmekomutlaryoktur.Bunlarnyerinekaydrmakamutlarkullanlr. ASL,LSRkumutlarndanASLileverisolakaydrlr.Herbirsolakaydrmaverininikiylearplmas demektir.Tekrarbirbitsoladahakaydrlmasyladeerdrtlearplmolur.LSRkomutukullanlarak deersaakaydrlr.Herbirkaydrmaileveriikiyeblnr.ststekaydrmadevamlikiye blnmeyisalar.

ASLkomutuylailenenbirdefasolakaydrlrkenD7,Cbayranader.D0'nyerineotomatikolarak 0gelir.EerC'dedahancebirbitvarsaodakaybolur. LSRkomutuylaakmlatrdekideerbirbitsaakaydrlrkendeer,ikiyeblnmolur.D0bitiC bayranaderken,boalanD7bitininyerineotomatikolarak0yerleir. ASLveLSRkomutlarylaverilersaaveyasoladorukaydrlrsa,sekizkaydrmasonunda Akumlatrniitamamensfrlarladolarak,veriningerekdeerikaybolur.Eergerekdeeri kaybolmadanverininzerindeilemyaplmakisleniyorsa,ROLveRORgibidndrmekomutlar kullanlr. ROLkomutuylailenenverisolabirhanekaydrlrken,D7'deki7.hanedekibitC'yeder.C'deki dahancekibitDOhanesineynlenir.lembyleceCzerindenhibirverikaybolmadandevam

eder.Dokuzkaydrmasonundailenenveritekrarayndeerialr.

ekilSolavesaadndrmekomutlarnnilevleri RORkomutuylailenenin0.hanesiC'yekayarken,boalan7.haneyeC'dekibitgelir.ROLveyaROR komutuilenenveridekibitlerinkontrolndekullanlr. Kaydrmavedndrmekomutlarelde,negatifvesfrbayraklarnaetkieder.Cbayrabtnbu komutlarlaetkilenirken,kaydrmailemindensonra7.hanenindurumunagreNbayraetkilenir. LSRkomutuylaNbayradaima0olur.Kaydrmakomutlarndansonrakaydedicininiitamamen 00000000olduundaZbayra1,aksihalde0olur.Kaydrmailemlerindeilenenkaydediciveya bellekolabilir.Eerilenenbellekise,kaydrmailemiadreslememodunabalolarakyedisaat saykleker. rnekProgram4:Bellektekibirverininkaydedicilerkullanlmadanbakabirbellekblgesiiledei tokuyaplmas. [0020]adresindekiA5verisinin[0040]adresindeki00verisiileyerdeitirilmesiningerekleirilmesi. lemsonunda[0020]adresindekiveri00,[0040]adresindekiveriA5olacaktr. Buprogramiinkaydrmaveyadndrmekomutlarndanfaydalanlr.BuilemleriinROLkomutlar veCbayrandanfaydalanlr.

Birbaytlkbirbellekalanndakiverininyerdeitirmesidndrmekomutlarylayaplr.Kaydrma komutlarylaverisadeceCyardmylabakabiryerekopyalanabilir.Bundandolayekildeki programdaesasrolROLveyaRORkomutlaralmaktadr.BellektekiyerindeveriROL$20komutuyla

birsolagnderilir.VerininMSBbitiC'yegeerveC'dekideer[0020]no.luadresininLSBbitiolarak yerleir. BuadrestekiMSBbiti,tekrarbirROL$40komutuyla[0040]no.luadresinLSBbitineyerleir.Ayn andabuadrestekiverininMSBbitideC'yegeer.Yani[0020]adresindekiverinin(A5)MSBbiti(1)C vastasyla[0040]adresininLSB'sineyerleir.Aynanda[0040]adresindekiMSBbitiC'yegetiinden birsonrakiROL$20komutuyla[0020]adresininLSBbitiolarakyerleir.Builemardkolarak8defa tekrarlandnda[0020]adresindekiverinintamambitbit[0040]adresinegeirilmiolur.

4.4.ArtrmaveAzaltmaKomutlar
Bukomutgruplar,XveYkaydedicilerininieriiniveyabirbellekalannnieriinibirartrrveya azaltr.GenelamalXveYkaydedicileri,programierisindesayaveyaindisolarak kullanldklarndan,programagredeerlerizamanlaartmakveyaazalmakzorundadr.Bukomutlar unlardr:
INX INY DEX DEY ;X=X+1 ;Y=Y+1 ;X=X-1 ;Y=Y-1

maladreslememodunukullananbukomutlarbellektebirbaytlkyerkaplarveikisaykllkzaman harcarlar.Artrmaveyaazaltmayapldktansonra7.bitindeerinegatifiseNbayra1,aksihalde0 olur.KomutlarilendiindekaydediciiitamamensfrsaZbayra1.aksihalde0olur. Bukomutlaraprogramlabirrnekverilirse: Bellekte[0020]adresindenbalayan5adetveri,[0080]'denbalayanbakabirbellekalannaatlmak istenmektedir.Bunagreprogramyazlrsa:


TASI LDX LDY LDA STA INX DEY BNE BRK #00 #05 $20,X $80,X ; X < 0, indis=0 ; Y < 5, saya=5 ; ilk bloktan veriyi al ; ikinci bloa at ; [X] = [X] + 1 ; saya = saya - 1 ;saya eitdeil 0 ise TASI'ya git

TASI

ProgramnbandaX'eyklenen0birindisolarak,Y'yeyklenenveriisekopyalanacakverininka adetolduunututanbirsayaolarakhazrland.LDA$20,Xkomutuylakaynakblgedenilkveri alnarak,STA$80,Xkomutuylahedefblgeyeaktarlmaktadr.lkverinintanmasndansonrageriye drtverikaldndanINXileindisbirartrlrken,DEYilesayabirazaltlmaktadr.ByleceX=1,Y=4 olur.TamanntamamlanptamamlanmadnaRNEkomutuylabaklarak,eerYeitdeil0iseTASI

etiketininbulunduuadresegeridnlpilemedevamedilir.ayetY=0iseilemtamamlanm demektir. XveYkaydedicilerininharicindencbirartrmaveazaltmaylailgilielemangerekliindebakabir kaydedicibulunmadndanbellekkullanlr.Builemlerleilgilikomutlar,JNCveDECkomutlardr.

4.5.GirivekKomutlar
Dahancedebelirtildiigibi,6502mikroilemcisindeayrcagiri/kilemlerinigerekletiren komutveyakomutlaryoktur.BununyerineikoduolarakLDAveSTAkomutu,ilenenyerinedeG/ elemanlarnnkullandadresleryazlarakprogramlamayaplr. Eerparalelgiri/kelemanolanPLA'nngiriverikaydedicisininkullandadres[4000],kveri kaydedicisininadreside[4001]ise, LDA$4000 lemkomutlar STA$4001olarakverilergiritenalnarakilendiktensonratekrarkaverilebilir.

4.6.KontrolKomutlar
Bukonudaherhangibiryerdeseyredenprogramnbirartdahilindebakabirprogramparasna saptrlarak,bakabirilemgerekletirmesiszkonusudur. Programngidiatnbakabiryeresaptrankomutlar,6502mikroilemcisindeikitanedir.Bunlardan birisiartszdalmakomutuJMP,dieriisebirkaeidiolansartldalmakomutlardr.

4.6.1.artszDalmaKomutu
KaytszartszherhangibiradresedalmaileminiJMPkomutugerekletirir.Eerbukomutunun devamndakikomutveyakomutlarilenmeyeceksebukomutkullanlr.JMPkomutu,mutlak adreslemeveyadolayladreslememodunukullanr.lenenolarakyabiretiketyadaadreskullanr. JMPkomutunabirrnekverilecekolursa:

0200 0202 0205 0206 0207

ARA

YENI

LDA JMP INX DEY BNE

$20,X YENI

ARA

ProgramsrasndaINXkomutunuaacakbiratlatmagerekir.BunudaJMPkomutugerekletirirve programlNX'igrmedenDEYkomutunadalarakilemedevameder.ProgramdaJMPkomutuetiketi olanYENI'ninyerinekarlkden[0206]adresiyazlabilirdi. JMPkomutuileneniylebirliktebelleklebaytlkyertutarken,mutlakadreskullandndasaykl, dolayladreslemekullandndabesaykleker.

4.6.2.artlDalmaKomutlar
artldalmadamikroilemci,gereklisartsalandndaprogramnbelirlenenhedefesapmasnsalar. artldalmakomutlarn,dalmakomutundanayrtedebilmekiinsapmadenildi.Eerart salanmamsa,programbirsonrakikomuttanilemeyedevameder.artldalmakomutlar aadakisrailealrlar; CPUlemkodunualpgetirerekdurumunneolduunukontroleder. CPUkoulanartabakar.Buartlarunlardr: a)sonunegatifmi?(BMI) b)sonusfraeitmi?(BEQ) c)Cbayra1mi?(BCS) Eerkoulanartgereklemise,programsaycnnkapsamyeniadresleyklenir. Eerkoulanartlakarlalmazsa,CPUsradakikomutuilemeyekoyulur. JMPkomutukontrolbellektemutlakbiradreseaktarrken,sapmakomutlarkontrol,komut ilendiktensonrabirsonrakikomutunbulunduuyerdenileriveyageridekibelirlibirbellekalanna aktarr.Dalmakomutuilesapmakomutuarasndakidierbirfark,sapmakomutukararverme komutlardr.

SapmaartlarmikroilemcidurumbayraklarndanC(elde),Z(sfr),N(negatifveyaiaret)veV (aritmetiktama)bayraklarnagregerekleir..

artldalmakomutlarndaadreslememodlarndansadecegreceliadreslemetrkullanlmaktadr. Bukomutlardaikodunutakibenilenendeofsetbaytlargelir.aretlisaylarasahipbuofsetbaytlar, sapmakomutununortayakmasylayeniadresinbulunmasiinPC'yeeklenir.


0200 0201 0202 0203 0204 0205 0206 0207 A5 80 F0 14 85 80 A5 40 LDA BEQ STA LDA $80 $0218 $80 $40

YukardakiprogramdaA'ya[0080]no'luadrestenbirveriykleniyor.Birsonrakikomutla(REQ)bu verininsfrolupolmadnabaklyor.Eersfrsa(Z=1),programhirsonrakikomutadresinden itibaren14baytilerigidiyor.Bu14baytProgramSaycyaeklenerekyeniadresbulunuyor.Eer yklenenverisfrdeilse(Z=0),artyerinegetirilmediiiinprogrambirsonrakikomutlaiine devamediyor.


O andaki [PC] adresi Ofset Yeni [PC] adresi [0204] 0014 +__________________ [0218]

OandakiPC'nnadresidemek,BEQkomutundansonragelenSTAkomutkodununnadresidir.nk, programalanndakibirkomutilenirkenProgramSaycsonrakikomutkodununadresinigsterir.

OfsetAlannnHesab
Ofset,saplacakadresinbulunmasndaprogramsaycsnaeklenenbaytsaysolarakikiliksaylardan meydanagelmektedir.BuikiliksaylarnMSBbiti0olduundaofsetpozitif,1olduundaofsetnegatif olmaktadr.8bitlikpozitifsaylar00000000Bile011111111Barasndaolup,00ile7FH=127D arasndadr. PozitifofsetdeeriPC'yeeklendiindesaplacakyeniadres,00ile127Darasndailerideherhangibir yerde,yanibyyenadrestarafndaolabilirken,negatifofsetdeeri128Dgeride,yaniklenadres tarafndaherhangibiryerdeolabilir.BualanndndakiadresleresapmaveJMPkomutbirleimleri ileulalabilir.

leriOfsetHesaplamas:Programsaycnndalacaadresdeeri,oandabulunduuadres deerindenbykseileriofsetadresi,programsaycsnndalacaadresdeerindenoanda bulunduuadresdeerikarlarakbulunur.Budeer0ile+127D(7FH)arasndaiseilenensonu bulunmuolur.Eerofsetdeerbualanierisindedeilse,ilemcinineriemediibiryerolduundan alandmesajgrlecektir.

GeriOfsetHesaplamas:Programsaycsbulunduuyerdengeriyedalacaksance,oandaPC'de bulunanadrestensaplacakolanadreskarlr.YenioluanadresinMSBhanelerindeoluanFF'ler gznnealnmaz.SonraLSBhanelerindekideerin2'litamamlamasalnr.Eerkansonu, 128D'dendahaaz,veyaeitise,sapmayeniadreseyaplr.Deilse,yeniadresalandndadr.


0200 0201 0202 0203 0204 0205 0206 0207 0208 0209 020A A2 00 b5 22 95 40 E8 E4 20 D0 ?? LDX $00 TUR LDA $22,X STA $40,X INX CPX $20 BNE TUR ; ofset (F7)

Program,bellektekibirdiziveriyisrasylaalarakbakabiralanaatmaktadr.Herdefasndayenibir verininkopyalanmasiinprogramngeridnmesigereklidir.Bugeridnaklanrsa: MikroilemciBNEartldalmakomutunuilerken,ProgramSaycs[020B]adresinigsterir.Burada TURetiketi,BNE'ceilerisrlenartgerekletiitakdirdesaptacakadresinaddr.Eer.Z=0deilse DON'esapartyla[0202]adresitarifedilmektedir.Buikiadresinarasndakifarkofsetolarak deerlendirilmektedir.PC'ninoankiadresiolan[020B]'dengerisaplacakadreskarlr.

Sonutakiyksekdeerlikliikihane(MSB)ihmaledilir.Geriyekalan09verisinin2'litamamlamas alnr.

GeriofsetsapmadeerinigsterenF7Hverisi,BNEkomutkodundansonragelenalanayerletirilerek programtamamlanr.Yukardaadgeenbtnsartldalmayanisapmakomutlarbellekleikibaytlk yerkaplarlar.ilkbaytkomutkodunu(ikodu)tutarkenikincibaytgreceliofsetbaytdr.

Eerbukomutlarilendiindekoulanartsalanmazsa,ikisaatsayklekerartsalanrsasaykl eker.Saplacakadreslersayfasnrlarntaarsabirsaykldahaeklenmelidir. rnekProgram5:Belleklebulunanbirgrupveriierisindennegatifvepozitifsaylarnadetinin bulunmas. [0020]adresindenbalamakrerebellektebirdiziveriierisindennegatifvepozitifsaylarn ayrtrlarak,negatiflerin[0040],pozitiflerin[0041]no.luadreseatlmasnngerekletirilmesi. Verilerinsaysbalangadresindedir.

Programnilksatrndanegatifvepozitifsaylarnadetdeerlerininkoyulacaadresler temizlenmektedir.VeribloununilkadresindekisayadeeriX'ealndktansonraLDA$20,Xilk veriakmlatreyklenir. LDAkomutu,NveZbayranaetkieder.BPI,ileNbayratestedilirveeerA'dakideerinMSBbiti 0isePOZIetiketinedalnr.Eer1ise,bitsonrakisatrageilir.lkdeerinnegatifolduufarzedilirse, N=1olacaktr.BudurumdaBPLPOZIkumutsatrdallanmayacaktr.BirsonrakisatrdakiINC$40 komutunegatifdeeriineldevarbirdiyerek[0040]adresininieriini1artracaktr. DahasonraJMPYENkomutuylapozitifilemkomutlaratlatlarakyeniveriakmlatrealnr.Bu defaverininpozitifolduudnlrse,budurumdaBPLPOZIkomutsatrdallanacaktr.nk N=0'dr.ProgramPOZIetiketinedaldndanbudefaINC$41komutupozitifdeeriineldevarbir diyerek[0041]adresininieriini1artracaktr.HerbirilemdeXsayacbirazaltlarakverilertektek

eldengeirilir.Sonuta[0040|ve[0041]adresindetmverilernegatifvepozitifolarakayrm olacaktr.

4.7.KarlatrmaKomutlar
Karlatrmakomutlar,hemenhemenbirokartldalmakomutlarncesikullanlannemli komutlardandr.Bukomutaslndabirkarmakomutudur.Sonuneakmulatrenedebelleeetki etmez.Sadecekomutunilenmesihalindebayraklardadeiiklikmeydanagelirveilembu deiimleregreyaplr. 6502mikroilemcisindeadetkarlatrmakomutuvardr:
CMP [M] CPX [M] CPY [M] ; A'nn iindeki deerden bellek ii [M] deerini kar ; X'in iindeki deerden bellek ii [M] deerini kar ; Y'in iindeki deerden bellek ii [M] deerini kar

BukomutlarntmdedurumbayraklarndanN,ZveCbayraklarnaetkiederken,adresleme modlarndansekiztanesinikullanabilir. Bukomutlarnetkilediibayrakkombinasyonu,kaydedicikapsamnnbellekveyaveritanml ilenendendahabyk,birbirineeitvedahakkolmaihtimalinidourur.

Karlatrmakomutlarnamekolarakynlkararprogramverilebilir.
BU-ES5 BNE LDA CMP BCS STA JMP BUY5 STA JMP STA #$XX #$05 BU-ES5 $40 TAMAM $50 TAMAM $60

BUY5 TAMAM BRK

; A, 5'den daha kk

; A , 5'e eit ; A, 5'den byk

Buprogramakmlatrnkapsamn(XX),tuttuudeeregre[40],[50]ve[60]no'luadreslere atar.yn,akmlatrnkapsambetenkk,beeeitveyabetenbykolabilir.

4.8.BTTestKomutu
BTkomutu,bellektekiveribitlerinintestininveyabirgiricihazndanverininilemcideki kaydedicilereyklenmedenteetinisalar.BTkomutununilenmesihalindeilemgerekleir: VerikelimesiakmlatrnkapsamylamantksalolarakAND'lenirkensonuakmlatrekonmaz. SonuNveVbayraklarnadorudanetkietmez. EerANDilemindensfrsonueldeedilirseZbayra1olur,aksihaldesfrdakalr. BITkumutusadecemutlakadreslemevesfrncsayfaadreslemesinikullanr.Mutlakadreslemede komutbaytalrken,drtsaatsaykleker.Sfrncsayfaadreslemesindeikibaytalrkensaykl eker. BITkomutuaslndaANDkomutuylayaplanilemleaynileviyerinegetirmekte,fakatilemsonucu akmlatrdekalmamaktadr.ANDkomutudurumbayraklarndanNveZbayraklarnaetkiederken bunlardanherikisideANDilemisonucunayansr. BTkomutuN,VveZbayraklarnaetkiederkenbunlardansadeceZbayraBITilemisonucuna yansmaktadr.Bukomutlaakmlatreyklenenveritestedilir.Testilemindebitlerdenbirisinin0 olupolmadnabaklr.Dierbitlergznnealnmaz.BTkomutubirrnekleaklanrsa:
BAK ISLE LDA BIT BNE #%00000100 $4004 BAK ; 2. bitin dndakiler maskelenecek ; 2. bit sfr m? ; Hayr, yleyse ara ; Evet, devam et

Program[4004]adresindenalnanverinin2.bitinin0olupolmadnabakmaktadr.Eersonu0ise programISLEyordamnagider,sonu0deilse2bitsfrolanadek4004adresinealnanveritest edilir.2.bitin1olupolmadise,BNEARAyerineBEQARAkomutukullanlarakmantksalolarak kolaycatestedilebilir.

BAK

ISLE

LDA BIT BEQ BVC BMI -

#%00000010 $4004 ISLE ISLE BAK

; 2. maskeleme biti ; 2. bit sfr m? ; Evet 2. Bit 0 ; 6. bit 0 ; 7. bit 1 yleyse 0 ara

Eerakmlatrdekimaskelemebitleriiletestedilecekbellekbitlerimantksal0iselerZbayra1 olur.Aksihaldebellektekibitlerdenbiriveyaikisi1ise,Zbayra0olacaktr.oklubittestinde0.bit ile5.bitlerdenbiriBITkomutuylatestedilirkendier6.ve7.bitlerANDkomutundanbamszolarak testedilebilir. BITtestikomutuylabellekteilenenbitlerinyansra6.ve7.bitlerinkontroloknemlidir.6502 mikroilemcisindekesmetalebigenelliklePIAvastasyla6.ve7.bitlegelmektedir.Bylecekesme talebidevamlyoklanarakbirtalebinolupolmadtestedilir.

4.9.lemYokKomutu
NOP(NoOPerationilemyok)komutu,programgelitirilmesisrasndaileridearayasktrlacak komutlarnyerinebolukoluturmakamacylakullanlantekbaytlkbirkomuttur.Bukomut,hibir bayraaetkietmez.Dierbirgrevidezamangecikmelerindeikisaykllkzamangeciktiricikomut olarakalr. rnekProgram6:Sraszbirdiziveriierisindenenkkdeerlikliolannnbulunmasdr. Veridizisibellekte[0040]no.luadrestenitibarenyerlemiolup,dizininuzunlukbilgisiilkadrestedir. Enkkdeerliklisaydizininsonunadepolanacaktr.Dizidekiverilerintamamiaretsizsaylardan olumakladr.

Programdaminimumdeer,yadizidekiilkveriyledierlerikarlatrlarakbulunur,yadabir kaydediciye0deeriorijinolarakalnarakbununladiersaylarkarlatrlarakbulunur. ekildekiprogramnbalangcndaX'ediziuzunluu,A'yaszedilenFForijindeeratlmaktadr. Dahasonrabuorijindeeriilediersaylarkarlatrlarak(CMP$40,X)veardndanBCCile sorgulanarakdevamedilir.BCCKALsatr,Cbayranabakarak,eerC=0iseA<[M]eerC=1ise A>=[M]ynnbelirler.EerbellektekideerA'dakindenkkise(C=1)programLDA$40,X deeriniiletecektir.AksihaldeprogramKALetiketinesaparaksradakiveriyitestedecektir. rnekProgram7:Birgrupveriierisindemantksal0'larntoplamsaysnnbulunmas. Bellektebulunanbirdiziveriierisindenekadarmantksal0olduunabaklaraktoplamsaysnn bulunmasvesonucun[0080]adresineatlmasnngerekletirilmesi. Programdaveridizisiierisindekimantksal0'larnsaysaltoplamnnbulunmasiinncebirindis kaydedicisinisayaolarakdieriniindisiolarakkurulmasgereklidir.BuradaXsayaolarak,Yindisi olarakkurulmulur.Y'niniersindekideer,elealnanverinin8.bitinitekteksaymakiin,X'in ierindekideerkataneverialnacangstermekledir.LDA$04,Xilebellektenilkverialnaraksola kaydrlrvetektekNbayranaBMIBIRilebaklaraknegatifliisorgulanr.

EerN=1isebirsonrakibitebakmakiinyatayindisiazaltlr.EerN=0ise(pozitif)BIRetiketine sapmaolmadansradakiINC$80komutualtrlarakmantksal0bulunduunadairartrmayaplr. DEYkomutuileyatayindisiazaltlrveeldekiverininbitleritektekdenetlenir.Herbirverininii bitince,yaniyataytaramabitincedikeytaramayageilir(YEN).Bylece[003F]adresindekisaya bilgisinegre,anailem8*10=80defatekrarlanacakdemektir.

rnekProgram8:BellektekibirgrupverininMSBveLSBbitlerininmantksal1olanlarnntoplam saysnnbulunmas.

[0020]adresindenbalamakzerebirgrupveriierisindenMSBveLSBbitlerininherikiside mantksal1olanlarnnkaydrmaveyadndrmekomutlarnnkullanlarakbulunmasn gerekletirmek. Program,[0020]no.luadrestenbalamakzerebellekle5adetverininMSBveLSBbitlerininher ikisininmantksal1olupolmadnabakar.Bununnegzelyolu,kaydrmaveyadndrmekomutlar kullanarakbellekterialnanverininbirsolavebirdesaakaydrlarakvedeNveyaCbayraklarna baklarakkolaycabulunabilir. Programlardasayalarnyklenmesindeikiyntemuygulanabilmektedir.Birincisi,indisisayalara 00yklendiindetabanadresveribloununbandanbalar.Mesel,eerveribloununbalang adresi[0020]ise,kullanlacakkomutgrubu;LDX#00veLDA$20,Xolacaktr.Butipilemebellekte ndenarkayadoruveyasoldansaadoruilemdenir.

lemsonrasherdefasndaXbirazaltlr.kincisinde,indisisayalarabirdeeryklendiinde,taban adresbirgeriyeekilir.Eerekilmezcehedefadresbiralacaktr.Mesel,Yindisisi05verisiile yklensin,budurumdakomutgrubu;LDY$05veLDA$1F,Xolacaktr.[0020]adresindenbalamak zereverigrubu[0024]adresinekadardr.Budurumda[0020]tabanadresine05sayaverisi eklenirseetkinadres[0025]olacaktrvesonadresimizolan[0024]aslmolacaktrvebundandolay [0020|adresindekiveridevredkalacaktr.Buileme,bellektearkadanneveyasadansolailem denir.

rnekProgram9:Bellektekisraszbirlistedenenbykveenkkelemanlarnbulunmas. Bellektebulunansraszbirdizisayierisindenmaksimumveminimumsaylarnbulunarak,kn [0042],byn[0043]adreslerinedepolanmasnngerekletirilmesi.Listeninbalangadresi [0020]ve[0021]adresindesaklanmoluplisteninuzunluudizininilkadresindedir.

Programdasraszlisteninbalangadresi,[0020]dkadresbaytn,[0021]yksekadresbaytn gstermektedir.Akdiyagramndakiilkaltilemkutucuuprogramnkurulumksmnifade etmektedir.BuradakiXlisteuzunluunuveYadresindiskaydedicileriolaraktanmlanmaktadr. Dahasonrailkverialnarakhembykvehemdekkolarakhedefadreslereyerletirilir.Son safhadasradakiverilistedenalnarakhedefadrestekiherikiveriilekarlatrlr.Eeralnandeer [0042]adresindekielemandankksebuyenideerbuadresekonulur.Eerbykise,[0043] adresindekiilekarlatrlrvebykse,buelemanhedefadreseatlr,ilemsayabilgisibilenedek srer.Sonundaminimumelemandeeri[0042]adresinde,maksimumelemandeeri[0043] adresindedepolanmolur. Elemankarlatrlmasnda,eerA'dakideerbellektekideerdenbykseC=1,kkseC=0olurve bunagresapmayaplr.

5.ZamanGeciktirmeAltyordamlar
Zamangeciktirme6502mikroilemcisininbaznemlisenkronizeilemlerigerekletirmesindeok nemlidir.Yinezamangeciktirmeilemi,okhzlbircihazlayavabircihaznhzuyumazln gidermekiindekullanlmakladr. 6502mikroilemcisindezamangecikmesisalayanbirtekkomutvardr,NOP(NoOPerationalma yok).Bukomutbellektebirbaytlkyertutarken2saykllkbirgecikmesalar.Fakat,birkomutunbelli birsaydanfazlakullanlmashalindeyapsalprogrambozukluklarortayakmaktadr.Bununyerine birdngveyabakabiryaklamlazamangecikmesihalledilir.

okfazlaZamangecikmesiningerekliolduuyerlerdebellioranlardazamangecikmesisalayan altyordamlarkullanlrvegerektiindegereklialtyordamadalnrveprogramadevamedilir. 1MHzfrekanstaalanbir6502mikroilemcisinde2saykldemek2mikrosaniyedemektir. MikroilemcidekiherbirkomutunkasaykltuttuukomutlistesindeNharfiileyazldr.Zaman gecikmesiiinkomutsatrndakibuN'lertoplanarakaltyordamntoplamkasayklektiibulunur. Komutlistesindekienfazlazamanalankomut7sayklileASL,BRK,DEC,INC,LSR,ROLvebenzeri komutlardr,Enazzamanalankomutlarsa2'ersayklla,BCC,CLCveTAXgibikomutlardr. Programarasndadorudanbirgecikmesalamakmaksadylayazlanentemelalgoritmannak diyagramyandagrlmektedir.Buzamangecikmedetekbirindiskaydedicisikullanlmtr.Basitbir zamangecikmealgoritmasyledir: 1.indiskaydedicilerindenbirisinibalangdeeriyle(saya)ykle 2.Gecikmeiinkomutkmesini(satrlarn)islet 3.Sayacbirazalt 4.Eersaya=0deilse2.ve3.admlartekrarla 5.Eersayasfrsaanaprogramadevamet.

Algoritmanndagsterdiigibi,sayabilgisininyerletirilmesiilegecikmeninsonlandrlmasilemi dngdehesababirdefakatlrkenkomutsatrlarvesayaazaltmhesabadngsayskadarkatlr. Akdiyagramnagrebirgecikmeprogramyazlacakolursa;


DON LDX NOP DEX BNE #$40 ; Saya bilgisi yklendi ; 2 mikrosaniye iin ilem yok ; Sayac bir azalt DON ; X sfr deilse ileme devam

Programkurulumundasayabilgisiolarak#$40(64)saysyklendi.Dahasonrakomutsatrolarak bir2saykllkNOPkomutukullanlmtr.Sayabirazaltlarakherdefasndasfrolupolmadkontrol edilmitir.SfrolmaddurumlardaNOP,DEXveBNEkomutlartekrarilendi.Sfrolduundaana programadnlmtr.Gecikmezamanaadakibasitbirformllehesaplanr.


Toplam Gecikme = Td + (Saya * Ti)

BuradaTd=dngierisinegirmeyenkurulumvesonlandrmakomutlarnntoplamektiizaman, Ti=dngierisindekikomutlarnektiitoplamzamandr.Yukardakientemelgecikmeprogramnn ektiitoplamzamanda4016saysnnondalkkarl64'dr.DngyeLDXkomutugirmediine grehesababirdefakatlacaktr.Bylece, Toplamgecikme=2+(64*((2+2+3)1))=2+(64x6)=2+384=386s'dir.

5.1.kiDnglZamanGeciktirmeAltyordam
Altyordamnamac,5saralklarla26sile329ms.arasndagecikmesalamaktr.[0020]ile[0021] adreslerindegecikmesrelerivardr.Buadreslerdekibirdeer26s'likminimumgecikmesalar.
GEC1 BEK LDX LDY DEX BNE DEY BNE RTS $20 $21 BEK BEK ; X'i 5s'lik sayala ykle ; Y'yi 1284s'lik sayala ; X=X-1,sfr m? ; Deil, BEK'leye dn ; Evet, Y=Y-1,Sfr m? ; Deil, BEK'leye dn ;Evet ana programa dn

ProgramdaXkaydedicisi5s'liksayabilgisinesahip[0020]adresinden,Ykaydedicisi1284s'lik sayabilgisinesahip[0021]adresindenyklenir.DEXkomutunuBEKetiketnoktasndailettiindeX sayacnndeeribirazalr.XsfraeritiindebudefaYsayacbirazaltlr.Eer0deilseilemcitekrar DEXkomutununbulunduuadresigsterenBEKetiketinedner.Dahance0olanXsayactekrar 255'ekurulur(FFH).VetekrarXsayac0olanadekilenir.

BNEBEKkomutusapmagrldnde3sayklekerkensapmaolmadndasadece2saykllkzaman alr.Altyordamdngszolarakve[0020]ve[0021]adreslerindekideerler1olduuzaman, gecikme6+3+3+2+2+2+2+6=26saykldr. Programdailkkomutla[0020]adresindekideerXkaydedicisinesayaolarakatlr.EerDEX komutuylaXsfraulamamsa,bukomut2s'likvesonrakikomutBNE'de3s'likzamanalacaktr. Bylece[0020]adresindekihersayaartilaveolarak5s'likbirzamangecikmesisalayacaktr. [0021]adresindekideerLDYkomutuylaYkaydedicisineikincisayabilgisiolarakyklenir.EerDEY komutuylaYsfrlanmamsa,BNEkomutuylabirbeklemeoluacaktrvebukomutikilisi256defaicra edilecektir.kinciDEYveBNEdngs,[0021]adresindekisayabilgisininartyla5s'likbirzaman gecikmesiretecektir.YsayacnnbitimiyleXsayactekrarFFH'ekurularaktoplamolarak (5*255)=1275s'likzamangecikmesisaglanacaktr. 8bitlikbiralanmaksimumondalk255deerinisaklayabilir.Bunagre[0020]ve[0021]adreslerinin sayabilgisiolarak255tuttuklarfarzedilirse: Tgmax=20+(5*255)+(255x1284)mikrosaniye Tgmax=328721mikrosaniye Tgmax=328.721milisaniyedir. Bualtyordamnmaksimumgecikmezaman329ms'dir.BuilemdeBNEkomutununson almasnda3sayklyerine2sayklekiigznnealnmamtr(1274).Alternatifgecikme program:
GEC2 BEKX BEKY LDX LDY DEY BNE DEX BNE RTS #$XX #$C6 BEKY BEKX ; lk saya bilgisini ykle ; kinci saya bilgisini ykle ; Y=Y-1 ; Sfr deilse devam ; X=X-1 ; Sfr deilse devam

ProgramdaYsayadeeri#$C6(19810)olaraksabitgirilmektedir.Xsayabilgisienfazla255olarak girilebilir.Programiinylebirhesaplamayaplabilir:
Tg= l ms. x [X] Eer [X] = 05 ise, Tg = 1 x 05 = 5ms Eer [X] = 08 ise, Tg = l x 08 = 8 ms. olarak bulunur. 1 s = 0,000001ms 1 ms = 0,001 s 1 ms = 1000 s 1 s = 1000 ms' dir

5.2.30SaniyelikZamanGeciktirmeAltyordam
AltyordamncekiGECIzamangecikmealtyordamn100defakullanarak0,5dakikalkbirgecikme salar:
G30S LDA #$A5 ; [0020] VE [0021] STA $20 ; Saya bilgilerinin LDA #$EA ; oluturulmas STA $21 ; LDA #100 ; A = 100; DAL JSR GEC1 ; GEC1'i ar SEC ; SBC #01 ; Zamanlama baytn BNE DAL azalt RTS ; Sfr deilse tekrar ar G30S LDA DON LDX LDY BEK DEX BNE DEY BNE SEC SBC BNE RTS #100 #$A5 #$EA BEK BEK #01 DON ; A = 100 ; ilk saya bilgisi ; ikinci saya bilgisi ; X=X-1 ; X eitdeil 0 ise BEK'e git ; Y=Y-1 ; Y eitdeil 0 ise BEK'e git ; Zamanlama baytn azalt ; A=0 olana dek DON'e dn

Yarmdakikalkaltyordamnbalangyklenmedeeriolan100yerine200deerikonulduunda1 dakikalkgecikmesresineeriilir.ProgramdaDONetiketigenelgecikmeyisalar.EerAkmlatr0 deilseburutinesaplr.EerA=01ikenDONarsyapldysa,altyordammikroilemciana programadnmedennce300ms'likgecikmeretecektir.EerAkmulatr100veya200ikenBAS arsyapldysa,altyordam30saniyeile1dakikalkgecikmeyapacaktr.EerAkmlatr0iken DONarsyaplrsa,DON'unreteceimaksimumzamangecikmesi76.8saniyedir. Akmlatre60yklenerekve1dakikalkaltyordamarlarakyaplanbirrgecikmeyle1saatlikbir gecikmesalanabilir.

You might also like