Commodore sayı 17, sayfa 62

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 62

AYHAN KALAYLIOĞLU

5. ASSEMBLER

Assembler programı, makine dilinde yazacağımız programları, BASIC'te yazıyormuş rahatlığıyla girmemizi sağlar. Aynen, BASIC'teki gibi satırları listeler, ekranda değiştirebilir, satır ekleyip çıkarabiliriz. Her bir satırın kendisine ait satır numarası vardır. Bu numaranın arkasından assembler komutları gelir. Daha doğrusu, bir satır sırasıyla, satır numarası, bir eksi “ işareti, bir etiket 'LABEL', komut ve operandını, daha sonra da o satıra ait açıklamaları (noktalı virgülle ayrılmış olarak) içerir. Tuna'nın, Süper Assembler'de de bahsettiği gibi bu açıklama kısmını kullanmayı ihmal etmeyin. Yoksa, birkaç ay sonra kendi programınızdan bir şey anlayamazsınız. Burada kullanılan açıklamalar, üretilen kodu hiçbir türlü etkilemiyor ve sadece dökümantasyon amaçlarıyla kullanılıyor. Şimdi bir örnek satır görelim:

100 -TEXT LDA $70,X; BAŞLANGIÇ DEĞERİNİ ALMAK

Şu anda yazmakta olduğunuz programa, “source” veya kaynak programı denir. Bu programları diğer programlardan kolayca ayırt edebilmek için isimlerinin sonlarına eklemenizi tavsiye ederiz. Assembler'ın, bu kaynak programından ürettiği obje kodunun isminin sonuna da “.OBJ” eklerseniz, çok genel bir konvansiyona uymuş olursunuz. Diyelim ki kaynak programınızı tümüyle yazdınız. Şimdi, RUN komutunu kullanarak assembler programının, obje kodunu üretmesini sağlayın. Kaynak programınız içinde hiçbir şey belirtmediyseniz, obje kodu bellekte üretilecektir. Eğer komutunu kullandıysanız, obje kodunuz sadece disket sürücüsüne belirttiğiniz ad altında gidecektir. Obje kodu üretilirken istenirse bir de assembler listing'i alınabilir. Bu listing, istenirse ekrana, istenirse bir dosyaya, istenirse yazıcıya çıkarılabilir. Eğer tüm “assembly” işlemi hatasız olarak biterse, assembler üretilen obje kodunun ilk ve son byte'larının adreslerini ve tüm işlemin ne kadar zaman sürdüğünü anlatan mesajlar verir. Arkasından “READY.” mesajı ile direkt moda çıkarsınız. Şimdi isterseniz, bir de sembol tablosunu görebilirsiniz. Bunun için veya komutlarını kullanabilirsiniz. Dilerseniz, sembol tablosunun, üretilen assembler listing'inin arkasından otomatik olarak listelenmesini sağlayabilirsiniz. Bir önceki bölümde gördüğümüz, karakter setini ekranda çıkaran örnek bizi oldukça yormuştu. Bunun nedeni ise gereksiz yere uğraştıran hesaplama ve sayı sistemi çevirme işlemleriydi. Şimdi aynı programı, bir de assembler kullanarak yazalım. Bu arada, yeni bir olayla karşılaşacağız. Söz konusu olay yani etiket kullanımı. Tuna'nın Süper Assembler yazısını okuyanlara tanıdık gelecek bu terim bizi birçok sıkıcı işlemden kurtarıyor. Etiketler, program içindeki bazı yerlerin adresini assembler programına hesaplatmamızı sağlıyor. Diyelim ki, biz programımızı sabit adresler kullanarak yazdık. Araya bir bölge ekleyeceğimiz zaman programın birçok bölümü ileri veya geri kayacak ve sonuç olarak adresi değişecek, biz ise programın kendi içinde bu adresleri kullanan bütün bölgeleri bulup elden değiştirmek zorunda kalacağız. Fakat, adresleri önemli yerlerin başına birer etiket koyup, programın diğer kısımlarından buraya yapılacak başvuruların bir etiket üzerinden yapılmasını sağlarsak programımız artık her türlü değişikliğe karşı genel bir yapıya sahip olacaktır ve bizi daha az uğraştıracaktır. Tabii, yukarıda söz ettiğimiz değişikliklere, program içinde başvurulan bir yerin tümüyle silinmesi dahil değil! Sembol ve etiketleri de kullanarak yazacağımız kaynak programımız şöyle görünecektir:

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