Makine Diline Merhaba (3) 5. Mantıksal İşlem Komutları Mantıksal işlemler de, aritmetik iş- lemler gibi iki değer arasında yürütü- lür. Aritmetik işlemlerle diğer bir ben- zerlik, operand'lardan birinin akümü- latör'de bulunma zorunluğu. Diğer operand için tanıdık adresleme tiple- rimiz mevcut. Mantıksal işlem yapıl- dıktan sonra sonuç burada da akümü- latör'e alınmakta. 6510 ana işlem üni- temiz üç türlü mantıksal işlem yapa- biliyor. VE (and) işlemi: Bu işlem akümülatör ve diğer ope- rand arasında bit bazında yürütülür. Bazılarınızın daha evvelden biliyor olabileceği “ve' işlemi, aslında iki adet birer bitlik veriler arasında yürütülür. Bu işlemin sonucu yalnızca her iki veri de *1” olduğunda '1'dir. Bunun ne an- lama geldiğini ufak bir mantıksal tab- lo yaparak inceleyelim: 0 AND 0 - OANDI - 1 AND 0 - DANDİ - —oOoTcdo Bit bazında “ve' işlemini gördükten sonra, şimdi de byte bazında bu olay nasıl gerçekleşiyor, gelin hep beraber bir örnek üzerinde görelim: AND # $37 Diyelim ki akümülatör bu işlemden önce $5D içermekte, işlem şöyle ger- çekleşir: $5D 01011101 $37 00ON10111 $15 00010101 Sonuç olarak 70600010101 yani $15 elde ettik. Bu işlemi BASIC'te yaptır- mak için tabif ki AND komutunu kul- lanacağız. Ayhan KALAYLIOĞLU A - AAND 55 (S37) Burada A'nın değeri; A-$5D AND $37, yani A—93 AND 55 'tir. Sonuç olarak 21, yani $15 elde ede- riz. AND işlemi sırasında N- ve Z- flagları etkilenir. Sonuç olarak sıfır el- de edersek, Z-flag'ı yanar. Sonucun 7'nci biti yanıksa N-flag yanar. Aşağıda AND işlemine ait komut kodlarını ve adresleme tiplerini bula- caksınız. Commodore Adresleme tipi AND direkt $29 absolut $2D 0. sayfa $25 X-indeksli $3D Y-indeksli $39 0. sayfa X-indeks $35 indirekt indeksli $31 indersli indirekt $21 VEYA (or) işlemi Bu işlem de akümülatör ve veri ara- sında bit bazında yürütülür. Şayet iki bitten bir tanesi bile “1'se sonuç “1' olur. Küçük bir tabloda inceleyelim: 0 ORA 0 -— O OORA 1 - İ 1ORA0O - | 1OnrRA 1 - |1 Bu veya işlemine 1, 1 kombinasyo- nunu da içerdiği (sonucu olumlu ol- duğu) için aynı zamanda 'içeren veya” (inclusive or) denir. *İçermeyen veya” (exclusive or) işlemini birazdan göre- ceğiz. VEYA işlemi sırasında da N- ve Z-flag'ları etkilenir. Şimdi işlemimiz byte bazında nasıl yürüyor, onu gö- relim: ORA 415837 Diyelim ki akümülatör $5D içeri- yor. İşlem şöyle gelişir: $5D 01011101 S37 00110111 S7F OLLİ1111 Sonuç olarak MOO1111111 yani $7F elde ettik. Aynı işlemi BASIC'te yap- tırmak isteseydik OR komutunu kul- lanmamız gerekecekti: A- AORS5 ($37) 47