1 Mart 1987 Tarihli Commodore Gazetesi Sayfa 23

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

saltmadır. Yapılan işlem şudur: Ad- reslenen byte'ın içeriği bir bit'lik po- zisyon olarak sola kaydırılır. Sıfırın- cı bit'in yeri boş kalacağı için oraya *O yazılır. Yedinci bit'teki bilgi ise dı- şarda kalır. O da Carry'ye alınır. Di- yelim ki akü ile bu işi yaptık. Bir ör- nekle görelim: ASLA Akü 5$47 içersin $47 — MO1000111 97910001110 $8E, C—0 Bu örneğimizde sonuç olarak akü- mülatör'ün içeriği olarak $8E elde et- tik ve Carry bit'i (flag'ı) söndürüldü, çünkü kaydırmadan önce akümüla- tör'ün 7'nci bit'i “0' içeriyordu. Akü- mülatör'ün kaydırmadan önce ve son- raki içeriklerini karşılaştırırsak görü- rüz ki akümülatör'ün içeriği iki katı- na çıkmış. Durumu daha iyi kavraya- bilmek için ondalık sistemde düşüne- lim. Şayet ondalık bir sayıyı bir ba- samak sola kaydırırsak değeri on ka- tına çıkar. Aynı olayın ikili sistem için de geçerli olduğunu gözönünde bulun- durursak, demin elde ettiğimiz sonu- cun rastlantı olmadığını görürüz. Yani ASL komutu ile bir sayıyı iki katına çıkarabiliriz. Bir örnek daha in- celeyelim. ASLA Akü $CD içersin SCD 97011001101 90910011010 S9A, C- 1 Carry flag'ını işlemin sonucunda sol taraftaki ekstra bit olarak görür- sek, gene sayımızın değerinin iki ka- tına çıktığı sonucuna varırız. $CD (205)'in iki katı SI9A (410)'dur. SIYANUANRIN * » 5R — Ün LSR komutu “dogical shift right'- n kısaltılmışı olup, ASL komutunun tersi işlemi yapar. Burada Byte'ın içe- riği sağ tarafa kaydırılır. 7'nci bit'e *0” yüklenir. Dışarı çıkan 0'ncı bit ise Carry'e alınır. Bir örnekle görelim: LSR A Akü $CA içersin $CA 011001010 97901100101 — S$65, C-0 Sonuç olarak akümülatör'de $65 ve sönük bir Carry bit'i elde ettik. Sizin de dikkatinizi çektiği gibi akümüla- tör'ün değeri yarıya indi. Carry bit'i kaydırmadan önceki sıfırıncı bit'in kopyasını içeriyor, başka bir deyişle Carry bit'i ikiye bölme sırasında ar- tan olup olmadığını gösteriyor. Böy- lece bir sayının tek mi, çift mi oldu- ğunu belirleyebiliriz. LSR en alttaki bit'i Carry'ye çıkarır, böylece BCC ve BCS komutları ile dolaylı olarak en alttaki bit'i test edebiliriz. Eğer LSR komutu bir hafıza elamanını adresler- se akümülatör'ün içeriği değişmez. ROL ROL komutu 'rotate left'in kısal- tılmışından gelir ve bit'lerin içeriğini ise dizilmiş boncukları kaydırır gibi döndürür. Sola kaydırma sırasında boşalan sıfırıncı bit'in yerine Carry bit'i kopya edilir. Dışarı çıkan yedin- ci bit'in içeriği ise Carry bit'ine alınır. Daha genel bakarsak, yapılan işlem dokuz bit'lik bir bilginin kendi için- de döndürülmesidir (Byte'a ait 8 bit ve Carry bit'i). Bir örnek daha iyi kav- ramımızı sağlayacak: ROLA Akü $4B içersin Carry yanık olsun S4B M01001011 C-1 C-0 M010010111 — $97 Bütün bit'ler bir basamak sola kay- dı. Carry bit'i boşalan sıfırıncı bit'in yerine geldi. Dışarı çıkan yedinci bit Carry'ye alındı. Sonuç olarak $97 ve sönük bir Carry elde ettik. Burada da akünün değerinin iki katına çıktığını, fakat bundan başka mesela daha ev- vel oluşmuş bir eldenin veya daha ev- velki bir kaydırma işleminden çıkmış Carry bit'inin de toplandığını görüyo- ruz. Bu son yorum oldukça ilgi çeki- ci, çünkü Carry bit'i yalnızca topla- ma ve çıkarmada değil, aynı zaman- da sağa ve sola kayırmalarda birkaç Byte'ı birbirine bağlamak için kulla- nılan bir ara değer taşıyıcısı durumun- da bulunuyor. ROR ROR komutu ('*rotate right”) ROL komutunun tam tersi işlemi yapar. Bu sefer bit'lerin dönüş yönü sağa doğ- rudur. Bir örnekle görelim: ROR A FAkü $89 içersin Carry sönük olsun $89. 17010001001 C-0 $44. — 001000100 C-l1 Akümülatör'ün içeriği olarak $89'- dan $44 elde ettik. Carry'nin yanık ol- ması bölme işleminde artan olduğu- nu gösteriyor. Kaydırma komutların- da Carry Flag'ından başka sonuca gö- re N- ve Z-İlag'ları da etkilenir. Aşağıdaki tabloda komutları ve ad- resleme tiplerini bulacaksınız. Adresleme tipi ASL LSR ROL ROR akü SOA SA S2A SA absolut $OE $4E $2E $6E 0.cı sayfa — $06 $46 — $26 — $66 absolut X-indeksli $ 0.cı sayfa X-indeks $16 $56 hei E $S3SE $E $7E

Bu sayıdan diğer sayfalar: