Program Döküm Eki sayı 16, sayfa 5

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 5

Önüçüncü sayımızda, profesyonel bir assembler programı yayınlamıştık: SUPER-ASS. Şimdi de aynı kalitede bir Reassembler veriyoruz! REASS.

Öncelikle bilmeyenler için, reassembler'in ne olduğunu anlatalım.

Bildiğiniz gibi, assembler ile, makina dilindeki programlarımızı rahatça yazıp değiştirebiliyorduk. Peki, daha önceden yazdığımız, belki bir makina dili monitörü programıyla, belki de DATA satırlarıyla hazırladığımız, binbir emekle çalıştırmayı başardığımız programları daha da geliştirmeye çalışırken ne olacak? Ya gereken yenilikleri dededen kalma eski yöntemlerle gireceğiz (monitör, DATA'lar vs.) veya tüm programı assembler kodu haline çevirip rahata kavuşacağız. Çünkü, bildiğiniz gibi, assembler kodunda yapacağınız her türlü değişikliği kolayca makina koduna çevirecektir.

Peki ama, elimizdeki makina dili programı assembler koduna çevireceğiz? Eğer bir reassembler'iniz yoksa, bu işi yapmanın tek yolu, programı satır satır kağıda geçirmek (printer'iniz yoksa yandınız), sonra programda label (SUPER-ASS'da bu tür terimleri açıklamıştık) konabilecek yerleri bulmak, tabelaları bulup çıkarmak ve sonra da oturup tek tek SUPER-ASS'ı kullanarak bilgisayara assembler kodu yazmak. Bu iş tahminle 5-6 saat sürer. Tabii programınız fazla uzun olmadığı sürece. Hele bir de başkasının yazdığı bir makina dili programını değiştirmek ve bu arada da SUPER-ASS'dan yararlanmak istiyorsanız yandınız.

Yanmamayı ve tüm bu işlemleri 5-10 saniyede bilgisayarın halletmesini, bu arada da ayaklarınızı karşı koltuğa uzatıp rahat etmeyi istiyorsanız, derdinizin çaresi REASS demektir.

Bu program, COMMODORE 64'ün içinde bulunan makina dili programlarını, gerek RAM'da gerekse ROM'da olsun, SUPER-ASS'ın kullanabileceği biçimde assembler koduna dönüştürür. Sizin tüm yapacağınız, assembler koduna dönüşecek programın başlangıç ve bitiş adreslerini REASS'a bildirmek. Geriye kalanı o haledecektir. Hatta, REASS'ı çağırırken kullanacağınız 0-225 arası bir sayı ile, assembler kodunuzun sahip olacağı birtakım özellikleri de ayarlayabilir, kendi damak zevkinize göre bir kod üretebilirsiniz. Artık teknik ayrıntılara girebiliriz.

REASS tamamen makina dilinde yazılmıştır ve $C000-$CB00 arasını kaplar. Çalışması sırasında SUPER-ASS'ın hafızada bulunup bulunmaması farketmez. Ayrıca REASS, demin de bahsettiğimiz gibi, üreteceğiniz assembler kodunun bazı özelliklerini değiştirebilmeniz amacıyla üç yeni komut getirmektedir. Şimdi kullanma yönetimine geçelim.

REASS'ı kullanırken SUPER-ASS'ın hafızada bulunmasının avantajı, üreteceğiniz assembler kodunu derhal kullanabilme şansına sahip olmanız. Ancak dezavantajı da, boş hafıza miktarının azalması. Bunun sonucunda, üreteceğiniz assembler kodu ile makina dili programın kendisi beraberce hafızaya sığmayabilir. Bunun bir çözüm yolu, SUPER-ASS'ı doldurmamaktır. Diğer bir çözümünü ise yazımızın ilerleyen kısımlarında göreceğiz.

Önce REASS'ı MDE kullanarak yazın ve SAVE edin. Sıra kullanmaya gelince...

Önce makina dili programınızı bilgisayara yükleyin ,8,1 veya ,1,1 ile . Yalnız dikkat, bu programın $C000-$CB00 arasını boş bırakması lazım. Çünkü buraya REASS yerleşecek. Eğer program bu adresler arasındaysa, iki çözüm yolu var. Ya programınızı makina dili monitörü ile kaydırırsınız (11. sayıya bakınız) ya da BASIC programından bu işi yaparsınız. Bu işi yapabilecek bir

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