1 Şubat 1987 Tarihli Commodore Gazetesi Sayfa 49

1 Şubat 1987 tarihli Commodore Gazetesi Sayfa 49
Metin içeriği (otomatik olarak oluşturulmuştur)

rada X-register'inin içeriği etkilenmez. TAY YsA TYA AzY Bu komutlar yukarıdakilerin Y-re- gister'ine uygulanmış halidir. Yuka- rıda belirtilen kurallar aynen geçerli- dir. Tek fark, işlemlerin X-register'i yerine Y-register'i ile yapılmasıdır. Geriye kalan iki komut yığın gös- tergeci (stackpointer) ile ilgili komut- lardır. Bu göstergecin ne işe yaradığını tüm detaylarıyla daha ileride görece- ğiz. Yığın göstergeci yalnızca X-regis- ter'i ile bilgi transferinde bulunabil- mektedir. TSX K-SP si direkt olarak sadece toplama ve çı- karmadan anlıyor. Aritmetik işlemler yürütülürken bazı kuralları gözönün- de tutmamız gerekiyor. Bunlar: Her hesaplama iki operand'a ihti- yaç gösterir. Sonuç, bu iki operand arasında sözkonusu işlem yapıldıktan sonra elde edilir. 6510 ana işlem üni- tesinde operand'lardan biri akümüla- tör'de olmak zorunda. İkinci operand ise hafızada olabilir. Tabil, ikinci ope- rand için değişik adresleme tipleri kul- lanılabilir. Bulunan sonuç daima akü- mülatör'de tutulur. Aynı kural bir sonraki kısmımız olan mantıksal iş- lemler için de geçerli. BASIC komut- ları ile vereceğimiz örnekler bu anla- tılanların daha iyi kavranmasına yar- dımcı olacaklardır. Yığın göstergecinin içeriği X-regis- ter'ine kopya edilir. Z- ve N-flag'ları etkilenir. Yığın göstergecinin değeri hiçbir şekilde etkilenmez. TXS SP-X Anlaşılacağı üzere, burada yapılan işlem yukarıdakinin tam tersidir. X- registeri'nin içeriği yığın göstergecine kopya edilir. Bu komut sırasında ana işlem ünitesinin hiçbir flag'ı etkilen- mez. Çünkü yığın göstergeci A-, X- ve Y-register'leri gibi işlem register'i de- ğildir. Burada da X-register'inin içe- riği korunur. Son iki komut için be- lirtmemiz gereken bir konu da bunla- rın öyle her yerde değil de, kritik prog- ramlarda kullanılan komutlar olduğu- dur. Aşağıdaki tabloda bu komutları ve onlara ait komut kodlarını bulacak- sınız. (Tabit ki burada adresleme tipi diye bir şey sözkonusu değil.) İlk önce toplama işlemine gözata- lım. Burada hafızanın içeriği akümü- latör'e toplanır ve sonuç akümülatör'e yazılır. Toplama işlemi şöyle olacaktır: e 10011110 Yo OOLMLOTÜ o 11011000 — $D& Burada gördüğünüz ikili sistemde- ki toplama işlemi onluk sistemdekinin benzeri kurallarla yürütülmektedir. Gözönünde bulundurmamız gereken durumlar 4 adettir: ÜYÜZÜ Örl1zE1 14 0z-1 D4 1 — Ove bir sonraki basamak için 'elde” Onluk sistemimizde olduğu gibi *el- de' olayı, bir sonraki basamakta de- ğerlendirilir. Bu örnekte sonucumuz $D8 veya ikili olarak Yo 11011000 idi. Görüldüğü gibi bu sonuç 8-bite sığdı. Bu olayı bir şans gibi görmektense sığ- mayacağı durumları da içeren genel bir çözüm görsek daha iyi olacak: ADC &S3A burada akümülatör SEÂ4 içersin. $E4 — MolL1100100 $S3A — İM00OLL1O1T0 Toplama işlemi şöyle olacaktır: ©o 11100100 Yo OOLLmLÖTÖ 99100011110 > $LE ADC ŞAS3A AsAL58 - S $3A Emir Kod TAX SAA TXA SBA TAY SAS TYA $98 TSX $BA TXS SA 4. Aritmetik İşlem Komutları Bu kısımda ana işlem ünitemize he- sap yaptıracağız. CÖMMODORE 64? ümüzün biricik 6510 ana işlem ünite- İki adet 8-bitlik sayıyı topladığımı- zı düşünelim ve sonuç 8-bite sığmaya- cak kadar büyük olsun (8-biti geçeme- yeceği de kesindir, yani yalnızca bir ekstra bite ihtiyaçımız olacak). Bura- da, “elde verme' denilen işlem yapıla- caktır. Konuyu lafla değil de örnekle incelersek daha iyi olacak galiba: ADC 3& $3A; bu işlemden önce akümülatör $9E içersin. $9E — MlOOLLLTÜ S3A — T900111010 Evet, 8-biti aşmayı becerdik. Ne ya- pacağız?.. Tabif bizim pek bir şey ya- pacağımız yok. Ama işlem ünitesinin bu durumda ne yaptığına bakalım. Akümülatör'ümüz 8-biti tutabiliyor- du. En alttaki 8 biti o alır. Dokuzun- cu bit ise CARRY flag'ine gönderilir. İşte burada CARRY flag'inin esas önemini görmekteyiz. Şayet işlem so- nucunda '“elde' oluşursa CARRY biti 'V durumuna geçer, şayet *elde” yoksa CARRY biti *Ü0' durumuna geçer. CARRY flag'ını aynı zamanda, top- lama işlemlerinde akümülatör'ün do- kuzuncu biti olarak görebiliriz. Şayet sekiz bitten daha uzun olan sayıları toplamak istersek CARRY biti imda- dımıza yetişir ve sekiz bitlik grupların birbirine bağlanmasını sağlar. Mese- la iki adet sekiz bit kullanırsak 0 ile 65535 arasındaki sayıları belirtebiliriz ki bu değer aralığı bile kendi başına birçok problemin çözümünde yeterli olabilir. Bu işlemi yaparken önce alt

Bu sayıdan diğer sayfalar: