Bu sayfadaki yazılar
Sayfanın metni
Sayfa 3
Makine dili hastaları işte tam aradığınız assembler. Adeta, yok yok!
Bir süredir. Ayhan Kalaylıoğlu'nun makine dili serisini okumaktasınız. Onbirinci sayımızda da, bir monitör programı verildi. Ayhan, o programın açıklayıcı yazısında, programın assemblerinin çok ilkel olduğunu belirtiyordu. Gerçekten de, sembolik olmayan, yani sadece hexadesimal sayılarla ve verilen adres ve değerleri kullanabilen bu program ile uzun uzun programlar yazmak çok zordur. Hatta hayaldir. Bu işlemi rahatça yapabilmek için, iyi bir assembler programı gerekir.
Önce assembler programının ne demek olduğunu genel hatlarıyla görelim. Biliyorsunuz, makinenin anladığı yegâne dil makine dilidir. Ve bu dilde yazılmış programlar, makinenin hafızasında yazıldıkları adresler arasında yerleşirler ve sadece orada çalışırlar. Örneğin $C000'dan başlayan bir programı $9000'a kaydırıp orada çalıştırmak imkânsızdır. Tüm programdaki JMP, JSR, LDA vs. gibi komutların hedefledikleri adresleri değiştirmek gerekir. Monitör programında, bunu sağlayan bir komut var. Ama, makine programcıları bilirler, programınızda vektörler kullanmışsanız ve LDA #ADRES gibi bir komutunuz varsa (bunun ne demek olduğunu birazdan göreceğiz), monitör bunu değiştirmeyecek, böylece de programınız işlerliğini yitirecektir.
Bunun dışında, programınız içinde hesaplama da yapabilirsiniz. Örneğin LDA #2+3 gibi komutlar, assemblerin anladığı dildendir. Hele birazdan göreceğiniz makro kullanımı ve şartlı assemble denilen yöntemler var ki, hiçbir monitör programında bunları bulamazsınız. Yani, her durumda bu uzun programı yazmak işinize yarayacaktır. Yalnız dikkat! Verdiğimiz uzun program, disket kullanıcılarına göre ayarlanmıştır. Eğer kaset kullanıyorsanız, yazımızın sonundaki açıklamaları dikkatle okuyun!
Özetle, assembler kullanarak program yazdığınızda, hiçbir adresi düşünmek zorunda kalmıyor, gerekli değişiklikleri korkunç bir rahatlıkla gerçekleştiriyor ve ileri programlama tekniklerini kullanabiliyorsunuz. Assemblerde yazılmış birçok örnek programı bu sayımızda görebilirsiniz. Bu yazımızla beraber 'ASS.DENEME' ve 'SUPER ASSEMBLER/KASET' dışında, program ekimizdeki diğer bir program olan 'RENKLİ YAŞAM' da bu assembler kullanılarak hazırlanmıştır.
Artık işe başlayalım. Bakalım assemblerimiz neler yapıyormuş...
Önce Super Assembler'ı MDE kullanarak yazın ve kasete veya diskete kaydedin. Kaset kullanıcılarını tekrar uyarıyoruz. Yazımızın sonunu okumadan bir şeye başlamasınlar. Neyse, assembleri kullanmak için, Super Assembler'ı bilgisayara yükleyin ve RUN komutunu verin. Bilgisayar çok kısa bir süre sonra, BREAK IN 0 cevabını verecektir. Artık assembler sistemi emrinize hazır ve nazırdır. Şimdi iş size düşüyor.
Assemblerin temel görevi, sizin yazdığınız sembolik programın makine koduna çevrilmesi olduğuna göre, önce bir sembolik program hazırlamanız gerekir. Buna assembler kodu adı verilir. Assembler kodunun makine koduna çevrilmiş hali ise, obje kodu olarak adlandırılır. Öyleyse, assembler kodunun ve özelliklerinin neler olması gerektiğini bilmemiz lazım.
Assembler kodu, BASIC programı gibi satırlardan oluşur. Şartlı assemble kullanmadığınız sürece (tamam, sıra ona da gelecek...), satır numaralarının önemi yoktur. Sadece hangi satırın hangi satırdan önce geldiğini belirler. Her bir satır değişik içeriklere sahip olabilir. Bunlar, makine dili komutu, assembler komutu, sembol (label) veya açıklama (BASIC'teki REM gibi)
Klavyeyle gezinmek için ← ve → tuşları.