Commodore sayı 13, sayfa 18

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 18

Burada A'nın değeri A=$5D OR $37, yani A=93 OR 55 işlemiyle belirlenir. Sonuç ise 127, yani $7F'dir. Aşağıdaki tabloda ORA işleminin komut kodlarını ve adresleme tiplerini bulacaksınız.

Adresleme tipi ORA direkt $09 absolut $0D 0. sayfa $05 X-indeksli $1D Y-indeksli $19 0.sayfa X-indeks $15 indirekt indeksli $11 indeksli indirekt $01

İÇERMEYEN VEYA (exclusive or, EXOR) işlemi

EXOR işlemi sırasında da, bit bazında yürür tüm işlem. Sonuç, verilerden sadece biri “1” değeri taşıyorsa “1”dir. Değer tablomuzda bu olayı daha yakından görelim:

0 EOR O 0 EOR | 1 EOR 0 1 EOR |

0 0 ll

Görüldüğü gibi bu ilginç işlemde sonuç sadece iki değer birbirinden farklı ise olumludur (= 1). Bu işlem sırasında da N- ve Z-flag'ları etkilenir. BASIC'te bu işlemi yapan bir komutumuz olmadığı için ufak bir döngüde, bu işlem bit bit gerçekleştirilmeli. Böyle bir örnek burada sadece kalabalık yaratmaktan başka bir şey yapmayacağı için böyle bir örneği meraklı programcı arkadaşlarımızın özel

zevkine bırakıyoruz. Şimdi byte bazında olayı, bir örnekle görelim:

EOR 44$37

Burada da akümülatör $5D içersin. Bakalım neler oluyor:

$5D 01011101 $37 00110111

$6A 01101010

Sonuç olarak yani $6A (106) elde ederiz. Bu komutun en çok kullanıldığı biçimini belirtelim. Bu komut genelde akümülatör'ün belli bazı bitlerinin içeriğini tersine (0->1 veya 1->0) çevirmekte kullanılıyor. Örnek olarak AND $FF işlemi akümülatör'ün içeriği ne olursa olsun, tüm bitlerini tersine çevirir. Aşağıdaki tabloda EOR işleminin adresleme tiplerini ve komut kodlarını bulacaksınız.

000

Adresleme tipi EOR direkt $49 absolut $4D 0. sayfa $45 X-indeksli $5D Y-indeksli $59 0.sayfa X-indeks $55 indirekt indeksli $51 indeksli indirekt $41

BIT komutu

BIT komutu 65XX ailesinden olan ana işlem ünitelerinin değişik bir özelliğidir. Bu işlem hiçbir register'in içeriğini değiştirmez. Sadece flag'larını yürütülen işleme göre değiştirir. Etkilenen flag'lar Z-, N- ve V-flag'larıdır. Z-flag'ı akümülatör'le, veri arasında yürütülen hayali bir “ve” (AND) işlemine göre şekillenir. N-flag'ı verinin 7'nci bitinin kopyasıdır. V-flag'ı da 6'ncı bitle aynı içeriktedir. Bir kere daha hatırlatalım: Bu işlem sırasında ne register'lerin içeriği ne de hafızadaki verinin içeriği değişmez. Sadece bit'lere göre test yapılır ve sonuç flag'lara kaydedilir. Başka hiçbir şey değişmez. Örneğimiz bu olayı daha iyi açıklayacaktır:

BIT $1234

Diyelim ki akümülatörümüz $10

0x içeriyor. $1234 adresinin içeriği de $43 olsun. Yürütülen hayali “ve” işlemi şu sonucu verir:

Klavyeyle gezinmek için ← ve → tuşları.