1 Mayıs 1987 Tarihli Commodore Gazetesi Sayfa 28

1 Mayıs 1987 tarihli Commodore Gazetesi Sayfa 28
Metin içeriği (otomatik olarak oluşturulmuştur)

24576) adresinden itibaren belleğe yerleşir. Eh artık makine dilindeki programımızı başlatabiliriz. Bun- nuün 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- ğiracak ve BASIC yorumlayıcısına geri dönmesi beklenecektir. Aman! Dikkat! Az kaldı bir şey unutuyor- duk! Diyelim ki ana işlem ünitesi STA $Dğ800 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 ünitemi- zi “crash' ettirecek komut kodları da şans esiri bulunabilir, Böyle bir du- rumda, bilgisayarı, kapatıp açmak veya RESET'lemekten başka çareniz yok. Tabif ki bu olay; ilk makine di- li programımızı yazarken pek hoş ol- mayan bir tecrübe. Ana işlem ünitesi dört adet komu- tumuzu 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ı. Altiprogramın geri dönme- Si için programımızın sonuna bir adet RTS (return from subroutine) komu- tu, yani $60 (— 96) kodu eklememiz gerekiyor. POKE 6*4096 * 10,96 Böylece, programımızın sonuna (10'uncu byte'ı olarak) RTS komu- tunu 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 bilgi- sayar tekrar 'READY.' mesajı vere- rek BASIC yorumlayıcısına kontro- u verir. Eğer, ekranın sol üst köşe- sindeki sarı *A' harfini bir türlü çı- karamıyorsanız, komutlarınızı hep ekranın en alt satırından veriyorsu- nuz demektir. Yani sizin sarı *A' sol üst köşede beliriyor, fakat bilgisaya- rın kendi mesajları (READY, gibi) yüzünden ekran birkaç satır yukarı kaydırılıyor. Böylece, siz kendi yarat- tığınız sarı *A' harfini bir türlü göre- miyorsunuz. Bu yüzden, komutları- nızı ekranın en alt satırından verme- yin ki ekran kaymasın. Şimdi, aklınıza şöyle bir soru ge- lebilir: Şu ufacık işlemi yapmak için bu kadar uzun uğraşmak mı gereki- yor? Çünkü burada yapılan işlemle- rin çoğu, kodların aranması, ope- randların belirlenmesi ve sayı sistem- lerinin çevrimi. Aslında, görüldüğü gibi, bunların tümü rutin ve belirlen- miş işler. Ee peki, bu işlemleri bilgi- sayarın kendisi yapamaz mı? Yoksa, bilgisayarın görevi ne? Yani, sonuç olarak öyle bir yar- dımcı programa ihtiyacımız var ki, 'LDA 44 1” gibi bir makine dili komu- tünu alsın ve tüm ara işlemleri ken- diliğinden yapıp, sonuçta meydana çıkacak kodları otomatik olarak ha- fızaya yazacak. Gerçekte, bu işi ya- pan 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. Da- ha ilk baştan, assembler kullanmak yerine, amacımıza adım adım yol al- mayı daha uygun buluyorum. Ö yüz- a Commodore den önce monitor programından baş- layalım. *Monitor' kelimesi, İngilizcede 'iz- lemek', fiilinin karşılığıdır. Bu prog- ramın yaptığı işlem ise, bilgisayarın ana işlem ünitesinin registerlerini ve belleği yürüyen programla paralel olarak izlememize olanak veriyor. Tabii, bu arada müdahale ederek ge- rek ana işlem ünitesinin registerleri- ni gerekse hafıza birimlerinin içerik- lerini değiştirmek mümkün. Makine dili programları, monitor programın- dan başlatmak da olası. Ayrıca, ha- fızanın bilumum acayip yerlerinde yeralan verilerinizi veya makine dili programlarınızı saklamak veya yük- lemek istediğinizde, bu işi en rahat yapabileceğiniz yardımcı programdır monitor. Diyelim ki makine dilinde- ki programınız tüm hatlarıyla mey- dana çıktı, (içindeki adresler ve refe- ranslar) böyle bir durumda programı- nızı monitorun İine assembler'ı yar- dımıyla girebilirsiniz. Onaltılık sis- temdeki verileri de belleğe doğrudan yazabilirsiniz. Bu son kullanılan yön- temle 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. Diassemb- ler denilen kullanım sayesinde hafı- zada yeralan bir makine dili progra- mının listesini almak mümkün. Ya- zı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 bir- likte vermiştim. Yakın bir zamanda, SMON adlı başka bir monitor prog- ramı 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 öğren- me, başkalarının programlarını ince- lemekle gerçekleşir.

Bu sayıdan diğer sayfalar: