bilgiler için kullanılır. Daha detaylı olarak altprogramlar bölümünde inceleyeceğiz. Durum register'i o anda ana iş- lem ünitesinin çalışma mod'unu ve en son yapılan işlemin sonucu ile ilgili genel bilgileri içerir. Bu ge- nel bilgiler şartlı olarak yürüyen programlar yazabilmemizi sağlar (F...THEN... gibi). Bu register'in bir bit'i dışında tüm bit'lerinin özel an- lamları vardır. Bu bit'lerin her biri- ne Tlag' denir. Bu flag'ların duru- mu doğru (—1) veya yanlış (—0) olabilir ve belli bir durumun olup olmadığını gösterir. Durum regis- ter'inin yapısı şöyledir: İuâşw 10 ’F_?*BÜ Ü Bu flag'ların isimleri yaptıkları işin baş harfinden oluşmuş kısalt- malardır ve anlamları şunlardır: C- Carry (taşma): Bu flag yapr- lan son işlemde bir taşma olup oOl- madığını gösterir. Mesela iki sayı- yı topladığımızda sonuç 255'ten büyükse sonuç 8 bit'le gösterile- mez ve bu flag yakılır. Z- Zero (sıfır): En son yapılan iş- lem sonucu sıfır'sa bu flag yakılır. L İnferrupt Disable: Buflag belli bir program bölümü yürürken In- lerrupt denilen programın periyo- dik olarak kesilmesi olayına izin verilip verilmediğini gösterir. Bu flag şimdilik bizi pek ilgilendirmi- yor. D- Decimal (ondalık hesapla- ma): Bu flag toplama ve çıkarma işlemlerinin ondalık mod'da yapı- hp yapılmayacağını belirler. Bu flag da bizi şimdilik ilgilendirmi- yor, B- Brecak: Bu flag, programın ke- silme işleminin BRK emri İle yapı- p yapılmadığını gösterir. Buflag'ı da şimdilik kullanmayacağız. V- Overflow: Sayıları pozitif ve negolif diye yorumlayıp - işlem yaptığımızda işimize yarayacak bu flag. yapılan işlemdeki taşma- ları gösterir. N-Negative: Bu flag en son ya- pılan İşlem sırasında 7 numaralı bit ile aynı içeriğe sahiptir. Nega- tif denmesi 128 ve üstündeki sa- H yıların negatif olarak da yorumla- nıp işlem yapılabileceğindendir. Başlangiç olarak yalnızca Carry, Zero ve Negative flag'larıy- la ilgileneceğiz. Ana işlem ünitesinin bir şeyler yapabilmesi için bir program ya- zılı olması lazım ve bu programın bulunacağı bir alan. Ayrıca bu programın yürürken kullanacağı veriler için de bir bölge lazım bi- ze. Aletin çalışma alanı veya RAM bellek denilen şey bizim register'- lerin oldukça büyük miktarda bir araya gelmişinden başka bir şey değil. Bu kadar çok reğister'in hepsine ad vermekle başa çÇık- mayacağı için her birini sırayla numaralama yolu seçilmiş. Bu nu- maraya aynı zamanda aöres de diyoruz. And işlem ünitemizin 16 adet adres hafti vardır. Böylece 2 16—65536 adres'i ayırt edebi- lir. Burdan vardığımız sonuç şu ki, Commodore Ö4 KByte'lik hafızası olâan COM- MODORE 64'ümüzün bütün adres bölgesi bellek elemanlarıyla kap- lanmış durumda, Dikkatli okurlarımız hemen far- ketmişlerdir. Program sayacımız- da onaltı bit genişliğindeydi. Bu onaltı bit'lik değer bir sonraki ko- mutun (instructlon) adresini aklır- da tutmakta (neden © anki değil de bir sonraki komutun, diye so- ranlar için söyleyelim, ana işlem ünitemiz PREFETKCH denilen bir tek- nikle çalışıyor ve belli bir oranda hizi artıyor). Ana işlem ünitesi program sayacı yardımıyla hafı- zoayı aöresler ve komutu bellekten okur, yürütür. Bir komut, bir Byte'a sığabildiği için en fazla 256 em- rimiz olabilir. Tabii bu komutları BASIC komutları ile karıştırmayın; bunlar ana işlem ünitesi tarafın- dan doğrudan yürütülebilecek komutlardır. yani makina dilinin ta kendisidir. © 65