ASSEMBLER-6 BBNE komutunu ilk defa kullandığı- mızda örneğin BNE 1200'ün tahmin edildiği gibi 3 Bayt'lık bir komut ol- madığını belirtmiş ve hafızada sade- ce iki bayt işgal ettiğini söylemiştik. Şimdi yeni bir adresleme yöntemi olan relatif adreslemeyi öğrenirken aynı zamanda Branch komutlarının neden 3 yerine 2 bayt kapladıklarını göreceğiz. Örneğin BNE 1200 yazdığımızda kullanmakta olduğumuz monitör rogramı *1200*' mutlak adresine kar- şılık gelen relatif adresi hesaplamak- tadır. Son adresleme yönteminde bil- gisayar dallanmanın kaç bayt ileri ve- ya geriye yapılacağına bakmaktadır. cBhurada karşımıza iki soru çıkmakta- Bilgisayar hangi adrese göre re- latıf olarak dallanmaktadır? 2. $1200 gibi mutlak bir adres gir- dığımude bilgisayar kaç bayt ileri ve- ya geri dallanacağını nasıl saptamak- tadır? Bu soruların cevaplarını aşağıdaki kısa programda bulacağız. 2000 AD 00 30 LDA $3000 2003 — FO 05 BEO $200A 2005 A9 00 LDA # $00 2007 8D 00 30 STA $3000 Z00A R Programımız $3000 baytının içer- diği değeri akümülatöre yüklemekte, eğer sonuç sıfır ise Basic'e geri dön- mektedir (RTS). Eğer $3000 sıfıra eşit değilse bu adres sıfır yapılmaktadır. Bu program ilk bakışta pek anlamlı gözükmese de $3000 bir Flag (bay- rak) olarak kullanılırsa oldukça ya- rarlı olur. 6510 makina dilinde bilgisayar hangi satırı işleyeceğini program sa- yacından (Programm Counter) öğ- renmektedir. Yukarıdaki programı- mızda sıra BEO'ya gelince sayaç oto- 44 matik olarak bir adım fazla atarak bir sonraki satırı yani $2005'i göster- mektedir. Bu şekilde birinci sorumuzun da cevabını almış oluyoruz. Branch ko- mutlmarında dallanmanın gerçekle- şeceği uzaklık (genellikle Offset ola- rak adlandırılır) program sayacına eklenir. İkinci sorunun cevabı için ise yu- karıdaki programı bu sefer bayt bayt inceleyelim: ÜUN 88 S823838s> $ ANIL GÜL $3000'in Alçak Baytı $3000'in Yüksek Baytı