Amiga Dünyası sayı 26, sayfa 32

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 32

AMIGA ASSEMBLER

Selam! Bu ay yine size yine komutlarla baş başa bırakacağım. Artık ne yazık ki komutlar bitmeden diğer konulara dönemeyeceğiz. Bu ay herhalde en büyük kısmını atlatacağız. Kalan kısmı da gelecek aya bırakıyorum. Şimdilik hoşça kalın ... Komut: EOR (do logical ExOR) Kullanım şekilleri: EOR Dx,Dy / EOR Dx,(Ay) EOR Dx,(Ay)+ / EOR Dx,-(Ay) / EOR Dx,d(Ay) EOR Dx,d(Ay,Dy) / EOR Dx,$yy.W / EOR Dx,$yyyy.L Açıklama : Source data register'ındaki sayıyı destination'ın içeriği ile Exor'layarak sonucu destination'a yazar. Etkilenen flaglar : -**00 Adresleme şekillerine göre harcadığı süre : EOR Dx,Dy = 4 CLCK, 4 CLCK, 8 CLCK EOR Dx,(Ay) = 12 CLCK, 12 CLCK, 20 CLCK EOR Dx,(Ay)+ = 12 CLCK, 12 CLCK, 20 CLCK EOR Dx,-(Ay) = 14 CLCK, 14 CLCK, 22 CLCK EOR Dx,d(Ay) = 16 CLCK, 16 CLCK, 24 CLCK EOR Dx,d(Ay,Dy) = 18 CLCK, 18 CLCK, 26 CLCK EOR Dx,$yy.W = 16 CLCK, 16 CLCK, 24 CLCK EOR Dx,$yyyy.L = 20 CLCK, 20 CLCK, 28 CLCK Komut: EORI (ExOR Immadiatly) Kullanım şekilleri: EORI #xxxx,Dy / EORI #xxxx,(Ay) EORI #xxxx,(Ay)+ / EORI #xxxx,-(Ay) / EORI #xxxx,d(Ay) EORI #xxxx,d(Ay,Dy) / EORI #xxxx,$yy.W EORI #xxxx,$yyyy.L/ EORI #xxxx,CCR / EORI #xxxx,SR Açıklama : Verilen sabit değeri destination'ın içeriği ile Exor'layarak destination'a yazar. Etkilenen flaglar : -**00 Adresleme şekillerine göre harcadığı süre :

EORI #xxxx,Dy = 8 CLCK, 8 CLCK, 16 CLCK EORI #xxxx,(Ay) = 16 CLCK, 16 CLCK, 28 CLCK EORI #xxxx,(Ay)+ = 16 CLCK, 16 CLCK, 28 CLCK EORI #xxxx,-(Ay) = 18 CLCK, 18 CLCK, 30 CLCK EORI #xxxx,d(Ay) = 20 CLCK, 20 CLCK, 32 CLCK EORI #xxxx,d(Ay,Dy) = 22 CLCK, 22 CLCK, 34 CLCK EORI #xxxx,$yy.W = 20 CLCK, 20 CLCK, 32 CLCK EORI #xxxx,$yyyy.L = 24 CLCK, 24 CLCK, 36 CLCK EORI #xxxx,CCR = 20 CLCK, 20 CLCK,------- EORI #xxxx,SR = 20 CLCK, 20 CLCK,------- Komut: EXG (EXchange data) Kullanım şekilleri: EXG Dx,Dy Açıklama: İki data register'ının içeriğini birbirleriyle değiştirir. Etkilenen flaglar :----- Adresleme şekillerine göre harcadığı süre : EXG Dx,Dy =........., ------ , 6 CLCK Komut: EXG (EXchange data) Kullanım şekilleri: EXG Ax,Ay Açıklama : İki adres register'ının içeriklerini değiştirir. Etkilenen flaglar :----- Adresleme şekillerine göre harcadığı süre : EXGAx,Dy = ------,......... , 6 CLCK Komut: EXG (EXchange data) Kullanım şekilleri: EXG Ax,Dy Açıklama : Adres register'ıyla data register'ının içeriklerini değiştirir.

Etkilenen flaglar :----- Adresleme şekillerine göre harcadığı süre : EXGAx,Dy = ------ , ------ , 6 CLCK

Komut: EXT (EXTended data) Kullanım şekilleri: EXT Dy Açıklama : Data register'ının içeriğindeki 7./15. biti geri kalan 16./24. bite (8./16. bitten itibaren) kopyalar. Eğer data register'ının içeriği byte ise 7. bit, word ise 15. bit kopyalanan bit olur. Bu şekilde byte bir değerini word, word bir değerini de longword yapabilirsiniz.

Etkilenen flaglar : -**00 Adresleme şekillerine göre harcadığı süre : EXT Dy = ---, 4 CLCK, 4 CLCK Komut: İLLEGAL Kullanım şekilleri: İLLEGAL Açıklama : 4 numaralı trap vektörünü çalıştırır. Bu şekilde programınızın bir yerinden hata verdirerek çıkış sağlayabilir ve register'ların da içeriklerini de görebilirsiniz. Fakat açılan ekranlar, ayrılan hafızalar açık kalacaklarından bunları elle kapamak (j<EndLabel>) gerekmektedir.

Etkilenen flaglar :....... Adresleme şekillerine göre harcadığı süre : İLLEGAL = ------ , ——,-------- Komut: JMP (JuMP) Kullanım şekilleri: JMP -(Ay) / JMP d(Ay) / JMP d(Ay,Dy) JMP $yy.W / JMP $yyyy.L / JMP d(PC) / JMP d(PC,Dy) Açıklama : Hafızada direkt olarak bir adrese geri dönüşsüz dallanma yapılır. Dallanılan rutinde RTS komutu ile karşılaşıldığında da program bitirilir.

Etkilenen flaglar : ---- Adresleme şekillerine göre harcadığı süre : Bu komutta .b,.w ya da .l takıları kullanılmaz. JMP-(Ay) =16 CLCK JMPd(Ay) =18 CLCK JMPd(Ay,Dy) =22 CLCK JMP $yy.W =18 CLCK JMP $yyyy.L = 20 CLCK JMPd(PC) =18 CLCK JMPd(PC,Dy) =22 CLCK Komut: LEA (Load Effective Address) Kullanım şekilleri: LEA (Ax),Ay / LEA d(Ax),Ay LEA d(Ax,Dx),Ay / LEA $xx.W,Ay / LEA $xxxx.L,Ay LEA d(PC),Ay / LEA d(PC,Dy),Ay Açıklama : Verilen adres ya da adres register içeriğindeki adresi destination adresine yazar. LEA <Label>,Ay aynı zamanda MOVE.L #<Label>,Ay işlevi daha az CLCK ile yapar. Destination register'ı olarak sadece adres register'ları kullanılabilir. Bu komut sadece 32 bit (longword) üzerinden çalışır.

Etkilenen flaglar : ---- Adresleme şekillerine göre harcadığı süre : LEA (Ax),Ay = 4 CLCK LEA d(Ax),Ay = 8 CLCK LEA d(Ax,Dx),Ay = 12 CLCK LEA $xx.W,Ay = 8 CLCK LEA $xxxx.L,Ay = 12 CLCK LEA d(PC),Ay = 8 CLCK LEA d(PC,Dy),Ay = 12 CLCK Komut: LINK Kullanım şekilleri: LINK Ay,#$xxxx Açıklama : Yeni bir stack bölgesi yaratmayı sağlar. Ay'nin içeriği stack pointer'ına yazılır ve stack adresi 4 byte geri alınarak bulunan adres Ay register'ına yazılır. En son işlem olarak da #$xxxx ile belirtilen adres, stack bölgesinin yeni bitiş adresi olarak gösterilir. Komut işlendikten sonra Ay'de eski stack'in adresi bulunur.

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