1 Haziran 1987 Tarihli Commodore Gazetesi Sayfa 62

1 Haziran 1987 tarihli Commodore Gazetesi Sayfa 62
Metin içeriği (otomatik olarak oluşturulmuştur)

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. İ

Bu sayıdan diğer sayfalar: