C64 Türkiye sayı 2, sayfa 10

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 10

5. PC (Program Counter -Program Sayacı- ) : Program Sayacı işlemcinin o anda işlenmekte olan makina dili komutunun bulunduğu adresi gösterir ve sürekli değişir. Nedeni ise C64'ün işletim sisteminin sürekli çalışır durumda olmasıdır. PC’yi durdurmak için işlemcinin durdurulması gerekir. Mesela hatalı bir işlem yapıldığında C64 kilitlenirse işlemci durmuş demektir. Bu durumda işlemcinin resetlenmesi gerekir.

6. SP (Stack Pointer -Yığın Göstergeci- ) : Bu register, yığındaki ilk boş yerleşim yerinin adresini gösterir. Yığın (Stack) makina dili ile yazılmış programlarda geçici saklama yeri olarak kullanılır. Ayrıca ana programın ve JSR komutu ile çağrılan alt rutinlerden RTS komutu karşılaşınca geri döneceği adresi gösterir. Yığın ile işlem yapılırken dikkatli olun. Çünkü eksik bir komut bilgisayarın kilitlenmesine veya programın rastgele bir adresten itibaren çalışmasına sebep olabilir. Eksik işlem'den kastettiğim kullanılan her PHA komutuna karşılık bir PLA komutu kullanılmalıdır. Yığın LIFO (Last In First Out) prensibiyle çalışır. Yani yığına en son attığınız bir sayı yığından ilk önce alınır. Yığına bir sayı attığınızda, SP 1 azalır. Sayıyı yığından geri aldığınızda, SP 1 artar. Yığın dediğimiz bölge, C64'ün RAM'inde 256 ile 512 nolu adresler arasındaki bölgedir (512 hariç). Yığın göstergeci bu bölgedeki ilk boş yeri gösterir.

7. I/O PORT (Giriş/Çıkış Portu) : C64'ün hafızasındaki 0 ve 1 nolu adresler işlemcinin kendi içindedir. 0 nolu adres veri yön registeri olup 1 nolu adresteki verinin yönünü belirler. 1 nolu adres ise veri registeridir. Bu iki adres C64'ün hafıza düzenleme işleminde kullanılır. Böylece C64'ün bellek haritasındaki RAM-ROM-I/O bölgesi gibi birimler seçilebilir. Bu iki adresi bu sayıdaki “bellek haritası” bölümünde ayrıntılı olarak göreceğiz.

MAKİNA DİLİNDE NASIL PROGRAM YAZABİLİRİZ Makina dili programlarını hafızaya yüklediğinizde bu programları düzeltme imkanınız yoktur. Bu nedenle makina dili programları yazmak için genellikle ASSEMBLER EDİTÖR denilen programlar kullanılır. (Benim sürekli kullandığım TURBOASSEMBLER programıdır.)

Bu programlar makina dili komutlarının anlaşılması için, bir sürü sayı ile uğraşılması yerine, anlaşılması ve akılda kalması daha kolay "MNEMONIC" denilen kısaltılmış komut isimleri kullanmamızı sağlar. Kısaca makina dili programlarını "MNEMONIC" kullanarak yazmamızı sağlayan programlara "ASSEMBLER", bu işlemin tersini yapan, yani hafızadaki bir makina dili programını "MNEMONIC" şeklinde gösteren programlara da "DISASSEMBLER" denir.

Bu iki programdan başka içinde basit bir assembler/disassembler programı içeren ve çeşitli işlemler yapılmasını sağlayan - mesela hafızanın bir bölümünü save yapan veya belli bir sayıyla dolduran veya başka bir hafıza bölümüyle karşılaştıran vs. - yardımcı programlardan oluşan "UTILITY" programlarına ise "MONITOR" programı denir.

ADRESLEME MODLARI 6510 işlemcisi bize 8 çeşit adresleme modu sunmaktadır. Bazı komutlar bu modların hepsini kullanır, bazı komutlar ise daha az adresleme moduna sahiptir. Adresleme modları yazdığımız programların daha kısa olmasını sağlar.

Dolaysız Adresleme : Bu adresleme modunda A, X ve Y registerlerine doğrudan bir değer yüklenir. Bu adresleme modunu kullanırken #$ işaretlerini kullanacağız.

Örnek : LDA #$00 LDX #$3A LDY #$FF Bu adresleme modundaki komutlar 2 bayt uzunluğundadõr.

Sıfırıncı Sayfa Adresleme : Bu mod, bellek haritasında 0 ile 255 (dahil) arasındaki adresler ile işlem yaparken kullanılır. Dolaysız adresleme modu haricindeki adresleme modları için $ işaretini kullanacağız.

Örnek : LDA $02 ASL $FB STX $01 Bu adresleme modundaki komutlar 2 bayt uzunluğundadır.

Mutlak Adresleme : Mutlak Adresleme modunu Sıfırıncı Sayfa Adresleme modunun genişletilmişi olarak düşünün. Yani Sıfırıncı Sayfa Adresleme modu aslında Mutlak Adresleme Modunun yüksek adresi gösteren baytının her zaman 0 olan halidir.

Örnek : INC $DEDE ROR $CEFA ADC $BABA Bu adresleme modundaki komutlar 3 bayt uzunluğundadır.

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