1 Aralık 1989 Tarihli Commodore Gazetesi Sayfa 45

1 Aralık 1989 tarihli Commodore Gazetesi Sayfa 45
Metin içeriği (otomatik olarak oluşturulmuştur)

A Program: Aritmetik dizinin toplamı, Carry'nin silinmesi- 16-Bit-Toplama polam + son eleman Yeni Tloplam | 16 Bit - Toplama Son eleman + D farkı Yeni son Eleman Oyunlardaki Başarınızın — sırrı: At: Programımızın akış diyagramı. Birçoğumuz SYS komutunu oldukça sık kullanırız. Ör- neğin “POKE 214,Satır No.” ve “POKE 211,Sütun No.” komutlarının ardından yazacağımız ““SYS 58640'' ile kursorun pozisyonunu belirleyebiliriz. Aslında bura- da yaptığımız iş bilgisayarın belleğinde bulunan makine dili bir programı işletmekten başka bir şey değildir. Bu- .Tada 58640 programın başlangıç adresidir ve SYS'yi Ba- sic'teki GOTO komutunun bir benzeri olarak düşünebi- liriz. Dolayısıyla SYS komutunu kullanarak Assembler programları çalıştırmak pek zor değildir. Esas sorun As- sembler programın kullanacağı parametrelerin kullanıl- masında yatmaktadır. Bu sorunun en basit ve en yavaş çözümü değerlerin Alçak ve Yüksek Baytlar şeklinde belli adreslere POKE edilmesi ve daha sonra makine dilinde yazılmış programca okunmasıdır. Şimdi örneğimizde bu yöntemi kullanacağız. Örnek programımızda birçoğumuzun yakından tanı- dığı bir aritmetik diziyi ele alacağız. Eğer “A” ilk ele- man, “D” fark ve **N”' ise eleman sayısını belirtirse bu tür bir dizinin toplamı şu şekilde olur: SEAH(ALDI(AL2*D) .eeei cen *(A-(N-I) *D) İlk on doğal sayının toplamı yukarıdaki diziye bir ör- nektir Sz14243444546474849-410 Burada A—1,D-—1 ve N— 10'dur. Yukarıdaki örnekte S toplamının 55 olduğunu kolaylıkla hesaplayabiliriz, fa- kat eleman sayısı çoğaldığında iş oldukça yorucu bir ha- le gelir. Her ne kadar bu işi yapabilen bir formül (Gauss Formülü) mevcut ise de biz burada herhangi bir formül kullanmayacağız. Programımız kısaca 1'den N'e kadar olan tamsayıları toplayıp sonucu bize bildirecek. Bu so- nuç 16-Bit bir sayı olduğu için 32767'den büyük olamaz. Dolayısıyla N için sadece 1 ile 255 arası değerler sözko- nusudur (Neden 255 olduğunu program tamamlanınca deneyerek görebilirsiniz). N sadece 1 bayta ihtiyaç duyduğu için bunu $1300'e kaydedebiliriz. A ve D'nin değerleri 1'dir, fakat bunlar da ileride programda değişiklik yapılabilmesi için 16- Bit'lik sayılar olarak hafızaya kaydedilir. “*A”' değişke- ni alçak ve yüksek bayt şeklinde $1310/1311'de, D” de- ğişkeni ise aynı şekilde $1320/1321'de saklanır. Sonuç ise $1400/1401'de yer alacaktır. Makine dili programımızın ise başlangıç adresi de $1200'dür. SöteE 2E JOLGTKK Tablii ki ?? el TİGARET. 34770 'l'll:lilmîiül 45

Bu sayıdan diğer sayfalar: