Bu sayfadaki yazılar
Sayfanın metni
Sayfa 28
24576) adresinden itibaren belleğe yerleşir. Eh artık makine dilindeki programımızı başlatabiliriz. Bunnun için BASIC'teki SYS komutunu kullanacağız. Şimdi SYS komutunu verip, başlangıç adresi olarak da 6*4096 verirsek makine dilindeki programımız, BASIC yorumlayıcısı tarafından bir alt program olarak çağıracak ve BASIC yorumlayıcısına geri dönmesi beklenecektir. Aman! Dikkat! Az kaldı bir şey unutuyorduk! Diyelim ki ana işlem ünitesi STA $D800 komutunu da yürüttü. Daha sonra ne yapacak? Valla, bu durumda belli değil. Çünkü, bizim yerleştirdiğimiz küçük makine dili programının arkasında neyin yeraldığını bilmiyoruz. Büyük ihtimalle, bu bölgede gelişi güzel içeriğe sahip düzensiz byte değerleri bulunacaktır ve bunların arasında, ana işlem ünitemizi *crash' ettirecek komut kodları da şans esiri bulunabilir. Böyle bir durumda, bilgisayarı, kapatıp açmak veya RESET'lemekten başka çareniz yok. Tabif ki bu olay, ilk makine dili programımızı yazarken pek hoş olmayan bir tecrübe Ana işlem ünitesi dört adet komutumuzu yürüttükten sonra, kontrolü BASIC yorumlayıcısına geçirmelidir. Çünkü, SYS komutu bizim makine dili programını bir altprogram olarak çağırmıştı. Altprogramın geri dönmesi için programımızın sonuna bir adet RTS (return from subroutine) komutu, yani $60 (— 96) kodu eklememiz gerekiyor.
POKE 6*4096 * 10,96
Böylece, programımızın sonuna (10'uncu byte'i olarak) RTS komutunu ekledik. Artık programımızı
SYS 6*4096
komutuyla başlatabiliriz! Derhal, ekranın üst sol köşesinde sarı renkli “A” harfi belirir ve bilgisayar tekrar 'READY.” mesajı vererek BASIC yorumlayıcısına kontrolu verir. Eğer, ekranın sol üst köşesindeki sarı “A” harfini bir türlü çıkaramıyorsanız, komutlarınızı hep ekranın en alt satırından veriyorsunuz demektir. Yani sizin sarı “A” sol üst köşede beliriyor, fakat bilgisayarın kendi mesajları (READY, gibi) yüzünden ekran birkaç satır yukarı kaydırılıyor. Böylece, siz kendi yarattığınız sarı *A” harfini bir türlü göremiyorsunuz. Bu yüzden, komutlarınızı ekranın en alt satırından vermeyin ki ekran kaymasın. Şimdi, aklınıza şöyle bir soru gelebilir: Şu ufacık işlemi yapmak için bu kadar uzun uğraşmak mı gerekiyor? Çünkü burada yapılan işlemlerin çoğu, kodların aranması, operandların belirlenmesi ve sayı sistemlerinin çevrimi. Aslında, görüldüğü gibi, bunların tümü rutin ve belirlenmiş işler. Ee peki, bu işlemleri bil; sayarın kendisi yapamaz mı? Yoksa, bilgisayarın görevi ne? Yani, sonuç olarak öyle bir yardımcı programa ihtiyacımız var ki, *LDA 1” gibi bir makine dili komutunu alsın ve tüm ara işlemleri kendiliğinden yapıp, sonuçta meydana çıkacak kodları otomatik olarak hafızaya yazacak. Gerçekte, bu işi yapan programlar mevcut ve bunlara *ASSEMBLER” adı veriliyor. MART 87 sayımızda TUNA ERTEMALP arkadaşımızın verdiği SUPER AS-SEMBLER (nam-ı diğer HYPRA-ASS) programı bu sınıf programlara kusursuz bir örnek oluşturuyor. Daha ilk baştan, assembler kullanmak yerine, amacımıza adım adım yol almayı daha uygun buluyorum. O yüzden önce monitor programından başlayalım. *Monitor” kelimesi, İngilizcede *izlemek”, fiilinin karşılığıdır. Bu programın yaptığı işlem ise, bilgisayarın ana işlem ünitesinin registerlerini ve belleği yürüyen programla paralel olarak izlememize olanak veriyor. Tabif, bu arada müdahale ederek gerek ana işlem ünitesinin registerleri ni gerekse hafıza birimlerinin içeri lerini değiştirmek mümkün. Makine dili programları, monitor programından başlatmak da olası. Ayrıca, hafızanın bilumum acayip yerlerinde yeralan verilerinizi veya makine dili programlarınızı saklamak veya yüklemek istediğinizde, bu işi en rahat yapabileceğiniz yardımcı programdır monitor. Diyelim ki makine dilindeki programınız tüm hatlarıyla meydana çıktı, (içindeki adresler ve referanslar) böyle bir durumda programınızı monitorun line assembler'ı yardımıyla girebilirsiniz. Onaltılık sistemdeki verileri de belleğe doğrudan yazabilirsiniz. Bu son kullanılan yöntemle birçok programın üzerindeki ufak değişiklikleri yapmanız oldukça kolay ve kısa zamanda gerçekleşen bir olay haline geliyor. Diassembler denilen kullanım sayesinde hafızada yeralan bir makine dili programının listesini almak mümkün. Yazıcınız varsa, bu listing'i kâğıda da dökebilirsiniz. OCAK 87 sayımızda, sözünü ettiğim işlemleri yapan bir monitor programı, kullanımıyla birlikte vermiştim. Yakın bir zamanda, SMON adlı başka bir monitor programı daha vereceğim. Bunlar, yardımıyla birçok programı inceleyebilir, değiştirebilir ve yürütebilirsiniz. Gerçekten de, makine dilini en iyi öğrenme, başkalarının programlarını incelemekle gerçekleşir.
Klavyeyle gezinmek için ← ve → tuşları.