09.07.2015 Views

C64 Turkiye - Sayi 03 (Eylul 2003).pdf - Retro Dergi

C64 Turkiye - Sayi 03 (Eylul 2003).pdf - Retro Dergi

C64 Turkiye - Sayi 03 (Eylul 2003).pdf - Retro Dergi

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

BİTLER İŞLEM SONUÇ0 - 0 EOR 00 - 1 EOR 11 - 0 EOR 11 - 1 EOR 0Eğer EOR komutunu kullanmayı bilirseniz herhangi bir adresin değeri her seferinde başlangıç vebitiş değeriyle değiştirebilirsiniz. Bir örnek verelim.Diyelim ki bir program yaptınız ve program içinde bir arttırma komutunuz var. Bir sayaç ile artışmiktarını kontrol ediyorsunuz. Sayaç belli bir sayıya ulaştığında arttırma komutunu azaltma komutunaçevirmeniz gerekiyor. Bunun için EOR komutunu kullanabilirsiniz. Her EOR komutu işlendiğinde komutkodu AZALTMA-ARTTIRMA şeklinde değişir. Aşağıdaki tabloyu inceleyin.ETİKET KOMUT PARAMETRE AÇIKLAMA... ........ ........DENEME INC $D000 Adresi 1 arttırLDX SAYAÇ Sayacı okuINXSayaç değerini 1 arttırCPX #$40 Sayaç #$40 mı ?BNE GİT Değilse git.LDA DENEMEAdresi oku. (Okunan ilk değer #$EE' dir.)(Son değer #$CE' dir.)EOR #$20#$20 ile EOR'la. (Sonuç #$CE olur.)(Daha sonra #$EE olur.)STA DENEME Adrese yaz.LDX #$00 Sayacın yeni değeriGİT STX SAYAÇ Sayaca yaz... ........ ........TOPLAMA VE ÇIKARMA İŞLEMLERİEğer bir program yazarken toplama veya çıkarma işlemi yapacaksanız dikkat etmeniz gereken birnokta vardır. Bir toplama işlemine başlamadan önce mutlaka CLC komutu kullanarak ELDE bitinisıfırlayın. Daha sonra toplama işleminizi yapın. Yaptığınız toplama (eğer bir baytlıksa) işleminde sonuç255' i geçerse (en fazla 510 olur) CARRY (Elde) biti "1" olur. Bu "1" ilk dersimizde gördüğünüz LOWBAYT - HIGH BAYT formatındaki HIGH BAYT'ı gösterir ve 256 demektir. Toplama işleminizin sonucuCARRY * 256 + AKÜDEKİ DEĞER şeklindedir. Aküdeki değer LOW BAYT anlamına gelir.Bu anlattıklarımızı bir örnekle görelim.ETİKET KOMUT PARAMETRE AÇIKLAMA... ........ ........LDX #$20 X'e #$20 değerini yükle.STX ADRES1 Bu değeri adres1'e kopyala.LDA #$80 Aküye #$80 değerini yükle.CLCElde bitini "0" yap.ADC ADRES1Aküdeki değeriAdres1 deki değer ile topla.STA ADRES2 Sonucu Adres2' ye yaz.BCS GİT Eğer ELDE biti "1" ise git.RTSELDE yoksa programı bitir.GİT ... ........ ........

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!