64'ler sayı 34, sayfa 57

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 57

komutu : LEA (L)oad (E)ffective (A)ddress, komutu biraz önce bahsettiğimiz gibi adresleri bir adres registeri tarafından point edip, onlarla işlem yapmamızı sağlar. Bu komutun büyüklüğü olmadığı gibi hiçbir durum kodu registeri bitini etkilemez. Bu komutun Assembler yazımı şöyledir. LEA efektif adres,adres registeri EXG komutu : EXG (EXchanGe) komutu iki operatörü ya da içeriklerini birbirleri arasında değiştirilmelerini sağlar. Komutun yapısı 32 bitliktir, yani değiştirmeleri hep 32 bit olarak yapar. Komut herhangi bir durum kodu registerine etki etmez. Komutun yazımı şöyledir. EXG SWAP komutu : SWAP komutu bir veri registerinin, 16 bitlik bir yarısıyla, 16 bitlik diğer yarısını değiştirmek için kullanılır. SWAP komutunun assembler yazımı şöyledir. SWAP data registeri Bu komut durum kodu registeri bitlerinden bazılarını etkiler. Etkilenen bitler şunlardır. N-eğer operasyon gerçekleşmişse, bu bit 1 olur. Eğer operasyon başarıya ulaşmamışsa, bu bit 0 olur. Z-Eğer operasyon bir nedenden ötürü başarılamamışsa, bu bit 1 olur. Eğer olay gerçekleşmişse bit 0 yapılır. V ve C bitleri her olayda 0 yapılır, ve X biti herhangi bir etkiye uğramaz. Bu arada küçük bir program verelim. Bu programı startup-sequence'ın herhangi bir yerine koyarak, bilgisayarın sol mouse button'a basılana dek işlemleri durdurmasını sağlayabilirsiniz. (PROGRAM 1) satır 1 : o: btst #6,$bfe001 bu satır, $bfe001 adresli CIA chipinin 6'ıncı bitinin 1 olup olmadığını kontrol ediyor. bne.s o bu satır ise, eğer $bfe001 adresli CIA chipinin 6'ıncı biti 1 değilse program akışını <o> label'ından devam ettiriyor. RTS bu satır eğer $bfe001 adresli CIA'in 6 numaralı biti 1 ise programdan çıkılmasını, sonuçta da AmigaDOS işlemlerinin devamını sağlıyor. Bu programı sek assemblerda yazın. İlk önce (w) komutuyla programı istediğiniz bir adla kaydedin. Daha sonra (wo) komutuyla programı olarak kaydedin. Sek'ten çıkın, ve CLI penceresinde WAIT yazın. Şimdi sol butona basın. Şirin değil mi? Bu sayıda bu kadar. Dışarıda köpekler havlıyor (hav hav) ve ben ölüp gitmeden yatmalıyım. Bir dahaki sayıda veri transfer komutları hakkında örnekler bulabilirsiniz. Bir dahaki aya kadar kendinize iyi bakın.

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