29.12.2014 Views

Amiga Dunyasi - Sayi 27 (Agustos 1992).pdf - Retro Dergi

Amiga Dunyasi - Sayi 27 (Agustos 1992).pdf - Retro Dergi

Amiga Dunyasi - Sayi 27 (Agustos 1992).pdf - Retro Dergi

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

AMIGA<br />

ASSEMBLER<br />

Selam!!! Ağustos'un bunaltıcı sıcak günlerine girerken yine bir<br />

Assembler köşesinde beraberiz. Bu ay artık sıkıcı bir hal alan komutlar<br />

listesinin son bölümünü vereceğim. İnanın, bu kadar uzun<br />

sürebileceğini ben bile tahmin edemedim. Bu yüzden Gelişmiş<br />

Assembler köşesine yaptığımız taşmayı telafi edeceğiz tabii ki.<br />

Komutlardan hemen sonra branch komutlarını detaylı olarak göreceğiz;<br />

zira bunlar bazen benim bile kafamı karıştırmaktalar.<br />

Hele oyun gibi detaylı bir proje yaparken bu tip karışıklıklar giderek<br />

büyür ve sonuçta kendi yazdığımız source'un içinden çıkamayabiliriz.<br />

Herneyse, dilerseniz hemen komutlara geçelim; ne<br />

dersi-niz<br />

Komut: NEG (NEGate data)<br />

Kullanım şekilleri:<br />

NEG Dy / NEG (Ay) / NEG (Ay)+ / NEG -(Ay)<br />

MEG d(Ay) / NEG d(Ay,Dy) / NEG $yy.W / NEG Syyyy.L<br />

Açıklama : Destination'un içeriğini 0'dan çıkarır ve elde edilen<br />

değeri yine destination'a yazar.<br />

Etkilenen flaglar : *****<br />

Adresleme şekillerine göre harcadığı süre :<br />

NEG Dy = 4 CLCK, 4 CLCK, 6 CLCK/NEG (Ay) = 12<br />

CLCK, 12 CLCK,20 CLCK<br />

NEG (Ay)+= 12 CLCK.12 CLCK.20 CLCK/NEG -(Ay)= 14<br />

CLCK,14CLCK,22CLCK<br />

NEG d(Ay)= 16 CLCK, 16 CLCK,24 CLCK/NEG d(Ay,Dy)=<br />

18 CLCK, 18 CLCK.26 CLCK<br />

NEG $yy.W= 16 CLCK, 16 CLCK.24 CLCK/NEG $yyyy.L=<br />

20 CLCK.20 CLCK.28 CLCK<br />

Komut: NEGX (NEGate extended data)<br />

Kullanım şekilleri:<br />

NEGX Dy / NEGX (Ay) / NEGX (Ay)+ / NEGX -(Ay)<br />

NEGX d(Ay) / NEGX d(Ay,Dy) / NEGX Syy.W / NEGX<br />

$yyyy.L<br />

Açıklama : Destination'un içeriğini 0'dan çıkarır ve elde edilen<br />

değeri yine destination'a yazar. X flag'ı da bu işlemde kullanıldığından,<br />

bit genişliği 32'nin üzerindeki sayıları da kullanmanızı<br />

sağlar.<br />

Etkilenen flaglar : *****<br />

Adresleme şekillerine göre harcadığı süre :<br />

NEG Dy =4 CLCK, 4 CLCK, 6 CLCK/NEG (Ay) = 12<br />

CLCK.12 CLCK,20 CLCK<br />

NEG (Ay)+ = 12 CLCK, 12 CLCK,20 CLCK/NEG -(Ay) =<br />

14 CLCK,14 CLCK.22 CLCK<br />

NEG d(Ay) = 16 CLCK.16 CLCK.24 CLCK/NEG d(Ay,Dy)=<br />

18 CLCK, 18 CLCK,26 CLCK<br />

NEG Syy.W = 16 CLCK.16 CLCK,24 CLCK/NEG $yyyy.L =<br />

20 CLCK.20 CLCK.28 CLCK<br />

Komut: NOP (No OPeration)<br />

Kullanım şekilleri:<br />

NOP<br />

Açıklama : NOP komutunun hiçbir işlevi yoktur. Zamanlamanın<br />

önemli olduğu rutinlerde bir nevi zaman komutu olarak kullanılabilir.<br />

NOP komutu 4 CLCK harcar.<br />

Etkilenen flaglar : -----<br />

Adresleme şekillerine göre harcadığı süre: Herhangi bir<br />

source ve destination kullanılmadığından adresleme şekli de yoktur.<br />

Fakat komutun süreci 4 CLCK'dir.<br />

Komut: NOT (do logical NOT)<br />

Kullanım şekilleri:<br />

Cem GENCER<br />

NOT Dy / NOT (Ay) / NOT (Ay)+ / NOT -(Ay)<br />

NOT d(Ay) / NOT d(Ay,Dy) / NOT $yy.W / NOT $yyyy.L<br />

Açıklama : Destination'un içeriğini mantıksal NOT işlemine<br />

tâbi tutar. İşlem sonucunda destination'un içeriğindeki tüm 1 taşıyan<br />

bitler 0, 0 taşıyan bitler de 1 olur.<br />

Etkilenen flaglar : -**00<br />

Adresleme şekillerine göre harcadığı süre :<br />

NOT Dy = 4 CLCK, 4 CLCK, 6 CLCK/NOT (Ay) = 12<br />

CLCK, 12 CLCK.20 CLCK<br />

NOT (Ay)+ = 12 CLCK.12 CLCK,20 CLCK/NOT -(Ay) = 14<br />

CLCK,14CLCK,22CLCK<br />

NOT d(Ay) = 16 CLCK.16 CLCK.24 CLCK/NOT d(Ay,Dy)=<br />

18 CLCK, 18 CLCK.26 CLCK<br />

NOT Syy.W = 16 CLCK.16 CLCK.24 CLCK/NOT $yyyy.L =<br />

20 CLCK.20 CLCK.28 CLCK<br />

Komut: OR (do logical OR)<br />

Kullanım şekilleri:<br />

OR Dx.Dy / OR (Ax),Dy / OR (Ax)+,Dy / OR -(Ax).Dy<br />

OR d(Ax),Dy / OR d(Ax,Dx),Dy / OR $xx.W.Dy / OR<br />

$xxxx.L.Dy / OR d(PC),Dy<br />

OR d(PC,Dx),Dy / OR #xx,Dy<br />

Açıklama : Source ile destination'u mantıksal OR işlemine tâbi<br />

tutar ve sonucu destination'a yazar.<br />

Etkilenen flaglar : -**00<br />

Adresleme şekillerine göre harcadığı süre :<br />

OR Dx.Dy = 4 CLCK, 4 CLCK, 6 CLCK/OR (Ax),Dy = 8<br />

CLCK, 8 CLCK. 14 CLCK<br />

OR (Ax)+,Dy= 8 CLCK. 8 CLCK, 14 CLCK/OR -(Ax),Dy=<br />

10 CLCK, 10 CLCK, 16 CLCK<br />

OR d(Ax).Dy=12 CLCK, 12 CLCK, 18 CLCK/OR<br />

d(Ax,Dx),Dy=14 CLCK.14 CLCK.20 CLCK<br />

OR $xx.W,Dy=12 CLCK.12 CLCK.18 CLCK/OR<br />

$xxxx.L,Dy=16 CLCK, 16 CLCK, 22 CLCK<br />

OR d(PC),Dy=12 CLCK, 12 CLCK.18 CLCK/OR<br />

d(PC,Dx),Dy=14 CLCK.14 CLCK.20 CLCK<br />

OR#xx,Dy = 8 CLCK.8 CLCK.14 CLCK<br />

Komut: OR (do logical OR)<br />

Kullanım şekilleri:<br />

OR Dx.Dy / OR Dx,(Ay) / OR Dx,(Ay)+ / OR Dx.-(Ay)<br />

OR Dx,d(Ay) / OR Dx,d(Ay,Dy) / OR Dx,$yy.W / OR<br />

Dx.$yyyy.L<br />

Açıklama : Source ile destination'u mantıksal OR işlemine tabi<br />

tutar ve sonucu destination'a yazar.<br />

Etkilenen flaglar :-**00<br />

Adresleme şekillerine göre harcadığı süre:<br />

OR Dx.Dy = 4 CLCK, 4 CLCK. 6 CLCK/OR Dx,(Ay) = 12<br />

CLCK, 12 CLCK, 16 CLCK<br />

OR Dx,(Ay)+= 12 CLCK.12 CLCK, 16 CLCK/OR Dx,-(Ay)=<br />

14 CLCK.14 CLCK, 18 CLCK<br />

OR Dx,d(Ay)=16 CLCK.16 CLCK.20 CLCK/OR<br />

Dx.d(Ay,Dy)=18 CLCK.18 CLCK.22 CLCK<br />

OR Dx,$yy.W=16 CLCK.16 CLCK.20 CLCK/OR<br />

Dx,$yyyy.L=20 CLCK.20 CLCK.24 CLCK<br />

Komut: OR (do logical OR)<br />

Kullanım şekilleri:<br />

OR Dx.Dy / OR (Ax).Dy / OR (Ax)+,Dy / OR -(Ax).Dy<br />

OR d(Ax),Dy / OR d(Ax,Dx),Dy / OR Sxx.W.Dy / OR<br />

$xxxx.L.Dy / OR d(PC),Dy<br />

AMIGA DÜNYASI 40

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!