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
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