64'ler sayı 33, sayfa 73

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 73

Effective Address (Etken Adres EA) Bir çok Assembler komutu etken adresleri kullanmamıza izin verir. Etken adresler üç şekilde incelenirler. A) REGİSTERLER B) AÇIK HEDEF OPERANDLAR (Immediate operands) C) BELLEK ADRESLERİ Etken adresler bir 68000 komutunun gerekli operandının nerede bulunacağını belirlerler. Bu operand ya bir register ya bir hafıza adresi ya da bir hedef operanttır. Şimdi de 68000 adresleme modlarına bir göz atalım. Bu bölümdeki örneklerde MOVE komutunu kullanacağız. Ancak adresleme modlarını assembler komutlarının yüzde sekseniyle kullanabilirsiniz. MOVE komutunu örnek olarak kullandık, çünkü MOVE komutu 68000 komutları içerisinde iki operandında da etken adres olabilmesine izin veren tek komuttur. MOVE komutu soldaki operanttan sağdaki operanda veri transferi yapan ve 68000 assembler'inin bel kemiğini oluşturan bir komuttur. I/ Register direk adresleme modları Bu adresleme modlarında 16 register arasında transfer yapılır. a) Veri registerleri direkt Bu adresleme modunda operand 8 veri registerinden birinde bulunur. Bu adresleme modu operandların yerine veri registerleri konularak yapılır. Örnek: Move.L D1,D2: Bu komutla D1 registerinin içeriği D2 registerine atılır. Bu operasyonun uzunluğu Longword'dür, yani 32 bitlik bir işlemdir. Yaklaşık her komut data registerlerini kullanarak iş görürler. Eğer hedef operand veri registeri ise Extend Flag dışında bütün durum kodu register bitleri etkilenirler. Bu tür direkt adresleme modundaki Assembler yazımı şöyledir. MOVE.(B; W; L) Dn,Dn (n-register numarası 0-7) b) Adres registerleri direkt Bu adresleme modunda hedef operand bir adres registeridir. Böyle bir komut verdiğimizde sol operantta bulunan adres registerinin içeriğinde bulunan adresin içeriğini sağ operantta bulunan veri registerine kopyalarız. (Umarız

Bu örnekte Al registerinin içeriğindeki adresin içeriğini D2'ye kopyalamış olduk. I/ Bellek adresleme modları Bellek adresleme modları, AMIGA belleğinin herhangi bir yerini işaretleyip onunla ilgili işlemler yapmamızı sağlar. Bellek adresleme modları çok çeşitlidir. Bu da işlemlerin ve transferlerin en kolay ve en hızlı yoldan yapılmasını sağlar. a) Adres registerleri endirekt Bu mod en kolay kullanılan bellek adresleme modudur. Bu modda soldaki adresin içeriği sağdaki adresin içeriğine kopyalanır. Bu demektir ki operasyonun sağ ve solunda kullanılan adres registerleri Operant için kullanılan de- Berin adresini içeriğinde bulundurur. Yani bu registerler operand olarak kullanılacak değeri kendi içlerinde bulundurmazlar. Örnek Move.B (al),(a2) Bu komut Al adres registerinin içeriğindeki adreste bulunan değeri A2 registerinin içeriğindeki adrese kopyalar (8 bit bazında,çünkü MOVE.B kullanıyoruz) b) Adres registeri indirekt (çoğaltarak) Bu mod yukarıdaki gibi çalışır.Tek farkı adreslerin içerikleri kopya edilirken adresler bir arttırılır. Bu moddaki komutlar bir döngü içine konularak hafızadaki bir bölge diğer bir bölgeye kopyalanabilir. Move.B (al)4,(a2)4- Al registerindeki adresin içeriği A2 registerindeki adrese her seferinde AD-RES bir arttırılarak kopyalanır. c) Adres registerleri indirekt (azaltarak) Yukarıdaki gibi çalışır, tek farkı arttırma yerine azaltma yapılır. Move.B -(a1),-(a2) Al'deki adresin içeriği A2'de bulunan adrese her defasında ADRES | azaltılarak kopyalanır. Böylece registerler arasındaki en önemli adresleme modlarını da öğrenmiş olduk. Bu yazı da burada biterken biz de bittik. Bir dahaki aya branch komutlarında görüşmek üzere hoşçakalın, bu arada bize mektup yağdırmaya da devam edin.Adres

ASSEMBLER'i tam olarak öğrenmek : 64'ler Dergisi istiyorsanız sistemin registeriyle birlik- SM» Assembler köşesi te 68000'in bazını oluşturan bu konu- — MOVE. (B ; la L) ları iyice öğrenmelisiniz. maVeri registerinni 80690 Beşiktaş/İstanbul Bitler 15. 14 13 12 1 10. 9 ÖZ 0 Sd San 2 7 0

T â NN aşık ön iğinizin S RE A yün o a. Bir şarilar eşit > Stalini SUNU Balay Ke 8 2. Dü SÖ Rus” dar rateji ANAN ŞE A birlik lir.

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