Makine diline merhaba (6) AYHAN KALAYLIOĞLU ASSEMBLER'LA ÇALIŞMA Şimdi size küçük bir makine dili program vereceğiz. Bunu verirken ay- nı zamanda, assembler kullanmanın faydalarını ve avantajlarını vurgula- yacağız. Bunun için aşağıdaki prob- lemi, makine dilinde formüle edece- Biz: Yapmak istediğimiz işlem, Com- modore 64'ün tüm karakter setini ek- randa göstermek. Önce bu problemi BASIC'te nasıl çözeceğimizi göstere- lim, Commodore 64'ün karakter se- tinde 256 değişik karakter yeralmak- tadır ve bunlar O'dan 255'e kadar ra- kamlanmıştır. BASIC'te bu proble- mi çözmek için şöyle bir döngü kur- mak gerekir. 100 X-0 110 A-X 120 POKE 1024 4 X,A:REM ekran kodu 30A-I 140 POKE 552964 X,A:REM renk kodu 150 X- X-41 160 I1F X « >256 THEN 110 170 END Bu programı RUN komutuyla ça- lıştırdığınızda, tüm karakter seti ek- ranın üst tarafını kaplayacaktır. Bü- tün bu işlem aşağı yukarı 7 saniye za- man alacaktır. Programa dikkat et- tiyseniz, bazı şeyler fazlasıyla abar- tılıp yazılmış durumda. Bunun nede- ni, programın makine diline yakın ol- ması ve makine diline çevirirken fazla sorun çıkarmaması. Öyleyse, haydi iş başına! 100 X-0 * LDXE 0 X değişkeni için X-register'ini, A değişkeni için ise akümülatörü kulla- nacağız. NOA-zX -© TXA 62 X-register'inin içeriği aküye kop- yalanıyor. Bu arada X'in içeriğine hiçbir şey olmuyor. 120 POKE 10244 XA a — STA 1024,X Burada, akünün içeriği 10244 X adresine saklanıyor. Yani indeksli ad- resleme tipini kullanıyoruz. Commodore 130A-I mi LDA 1 Akü | numaralı renk koduyla (be- yaz) yükleniyor. 140 POKE 552964 XA m STA 1024,X ve 552964 X adresli hafıza elemanı- na yazılıyor. İ