C64 Türkiye sayı 3, sayfa 10

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 10

BİTLER İŞLEM SONUÇ 0 - 0 EOR 0 0 - 1 EOR 1 1 - 0 EOR 1 1 - 1 EOR 0 Eğer EOR komutunu kullanmayı bilirseniz herhangi bir adresin değeri her seferinde başlangıç ve bitiş 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 komut kodu AZALTMA-ARTTIRMA şeklinde değişir. Aşağıdaki tabloyu inceleyin.

ETİKET KOMUT PARAMETRE AÇIKLAMA ... ........ ........ DENEME INC $D000 Adresi 1 arttır LDX SAYAÇ Sayacı oku INX Sayaç değerini 1 arttır CPX #$40 Sayaç #$40 mı ? BNE GİT Değilse git.

LDA DENEME Adresi 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ğeri GİT STX SAYAÇ Sayaca yaz ... ........ ........ TOPLAMA VE ÇIKARMA İŞLEMLERİ

Eğer bir program yazarken toplama veya çıkarma işlemi yapacaksanız dikkat etmeniz gereken bir nokta vardır. Bir toplama işlemine başlamadan önce mutlaka CLC komutu kullanarak ELDE bitini sı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 LOW BAYT - HIGH BAYT formatındaki HIGH BAYT'ı gösterir ve 256 demektir. Toplama işleminizin sonucu CARRY * 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. CLC Elde bitini "0" yap.

ADC ADRES1 Aküdeki değeri Adres1 deki değer ile topla. STA ADRES2 Sonucu Adres2' ye yaz. BCS GİT Eğer ELDE biti "1" ise git. RTS ELDE yoksa programı bitir. GİT ... ........ ........

Klavyeyle gezinmek için ← ve → tuşları.