DİLLER MOVE Ax,Dy = ------ , 4 CLCK, 4 CLCK MOVE (Ax),Dy = 8 CLCK, 8 CLCK, 12 CLCK MOVE (Ax)+,Dy = 8 CLCK, 8 CLCK, 12 CLCK MOVE -(Ax),Dy = 10 CLCK, 10 CLCK, 14 CLCK MOVE d(Ax),Dy = 12 CLCK, 12 CLCK, 14 CLCK MOVE d(Ax,Dx),Dy = 14 CLCK, 14 CLCK, 18 CLCK MOVE $xx.W,Dy = 12 CLCK, 12 CLCK, 16 CLCK MOVE $xxxx.L,Dy = 16 CLCK, 16 CLCK, 20 CLCK MOVE d(PC),Dy = 12 CLCK, 12 CLCK, 16 CLCK MOVE d(PC,Dx),Dy = 14 CLCK, 14 CLCK, 18 CLCK MOVE #xxxx,Dy = 8 CLCK, 8 CLCK, 12 CLCK Komut: MOVE (MOVE data) Kullanım şekilleri: MOVE Dx,(Ay) / MOVE Ax.(Ay) MOVE (Ax),(Ay) / MOVE (Ax)+,(Ay) / MOVE -(Ax),(Ay) MOVE d(Ax),(Ay) / MOVE d(Ax,Dx),(Ay)MOVE $xx.W,(Ay) MOVE $xxxx.L,(Ay) / MOVE d(PC),(AyL MOVE d(PC,Dx),(Ay) / MOVE #xxxx,(Ay) Açıklama : Source'taki datayı destination adres register'ının içeriğinin gösterdiği adrese yazar, Etkilenen flaglar : -**00 Adresleme şekillerine göre harcadığı süre : MOVE Dx,(Ay) = 8 CLCK, 8 CLCK, 12 CLCK MOVE Ax,(Ay) = ------ , 8 CLCK, 12 CLCK MOVE (Ax),(Ay) = 12 CLCK, 12 CLCK, 20 CLCK MOVE (Ax)+,(Ay) = 12 CLCK, 12 CLCK, 20 CLCK MOVE -(Ax),(Ay) = 14 CLCK, 14 CLCK, 22 CLCK MOVE d(Ax),(Ay) = 16 CLCK, 16 CLCK, 24 CLCK MOVE d(Ax,Dx),(Ay) = 18 CLCK, 18 CLCK, <strong>26</strong> CLCK MOVE $xx.W,(Ay) = 16 CLCK, 16 CLCK, 24 CLCK MOVE $xxxx.L,(Ay) = 20 CLCK, 20 CLCK, 28 CLCK MOVE d(PC),(Ay) = 16 CLCK, 16 CLCK, 24 CLCM MOVE d(PC,Dx),(Ay) = 18 CLCK, 18 CLCK, <strong>26</strong> CLCK MOVE #xxxx,(Ay) = 12 CLCK, 12 CLCK, 20 CLCK Komut: MOVE (MOVE data) Kullanım şekilleri: MOVE Dx,(Ay)+ / MOVE Ax,(Ay)+ MOVE (Ax),(Ay)+ / MOVE (Ax)+,(Ay)+ MOVE -(Ax),(Ay)+ / MOVE d(Ax),(Ay)+ MOVE d(Ax,Dx),(Ay)+ / MOVE $xx.W,(Ay)+ MOVE $xxxx.L,(Ay)+ / MOVE d(PC),(Ay)+ MOVE d(PC,Dx),(Ay)+ / MOVE #xxxx,(Ay)+ Açıklama : Source'taki datayı destination adres register'ının içeriğinin gösterdiği adrese yazar ve destination adres register'ını kullanılan bit genişliğine göre 1, 2 ya da 4 artırır. Bu şekilde adres register'ı, komut işlendikten sonra bir sonraki byte/ word/ longword'u gösterecektir. Etkilenen flaglar : -**00 Adresleme şekillerine göre harcadığı süre : MOVE Dx,(Ay)+ = 8 CLCK, 8 CLCK, 12 CLCK MOVE Ax,(Ay)+ = ------ , 8 CLCK, 12 CLCK MOVE (Ax),(Ay)+ = 12 CLCK, 12 CLCK, 20 CLCK MOVE (Ax)+,(Ay)+ = 12 CLCK, 12 CLCK, 20 CLCK MOVE -(Ax),(Ay)+ = 14 CLCK, 14 CLCK, 22 CLCK MOVE d(Ax),(Ay)+ = 16 CLCK, 16 CLCK, 24 CLCK MOVE d(Ax,Dx),(Ay)+ = 18 CLCK, 18 CLǧ, <strong>26</strong> CLCK MOVE $xx.W,(Ay)+ = 16 CLCK, 16 CLCK, 24 CLCK MOVE $xxxx.L,(Ay)+ = 20 CLCK, 20 CLCK, 28 CLCK MOVE d(PC),(Ay)+ = 16 CLCK, 16 CLCK, 24 CLCK MOVE d(PC,Dx),(Ay)+ = 18 CLCK, 18 CLCK, <strong>26</strong> CLCK MOVE #xxxx,(Ay)+ = 12 CLCK, 12 CLCK, 20 CLCK Komut: MOVE (MOVE data) Kullanım şekilleri: MOVE Dx,-(Ay) /MOVE Ax,-(Ay) MOVE (Ax),-(Ay) / MOVE (Ax)+,-(Ay) / MOVE -(Ax).-(Ay) MOVE d(Ax),-(Ay) / MOVE d(Ax,Dx),-(Ay) MOVE $xx.W,-(Ay) / MOVE $xxxx.L,-(Ay) MOVE d(PC),-(Ay) / MOVE d(PC,Dx),-(Ay) MOVE #xxxx,-(Ay) Açıklama : Source'un içeriğini destination adres register'ının gösterdiği adrese yazar ve destination adres register'ını, kullanılan bit genişliğine göre 1, 2 ya da 4 byte azaltır. Bu sayede, komut işlendikten sonra adres register'ı işlenen adresten 1/2/4 byte öncesini gösterecektir. Etkilenen flaglar : -**00 Adresleme şekillerine göre harcadığı süre : MOVE Dx,-(Ay) = 8 CLCK, 8 CLCK, 14 CLCK MOVE Ax,-(Ay) =-------, 8 CLCK, 14 CLCK MOVE (Ax).-(Ay) = 12 CLCK, 12 CLCK, 20 CLCK MOVE (Ax)+,-(Ay) = 12 CLCK, 12 CLCK, 20 CLCK MOVE -(Ax),-(Ay) = 14 CLCK, 14 CLCK, 22 CLCK MOVE d(Ax),-(Ay) = 16 CLCK, 16 CLCK, 24 CLCK MOVE d(Ax,Dx),-(Ay) = 18 CLCK, 18 CLCK, <strong>26</strong> CLCK MOVE $xx.W,-(Ay) = 16 CLCK, 16 CLCK, 24 CLCK MOVE $xxxx.L,-(Ay) = 20 CLCK, 20 CLCK, 28 CLCK MOVE d(PC),-(Ay) = 16 CLCK, 16 CLCK, 24 CLCK MOVE d(PC,Dx),-(Ay) = 18 CLCK, 18 CLCK, <strong>26</strong> CLCK MOVE #xxxx,-(Ay) = 12 CLCK, 12 CLCK, 20 CLCK Komut: MOVE (MOVE data) Kullanım şekilleri: MOVE Dx,d(Ay) / MOVE Ax,d(Ay) MOVE (Ax).d(Ay) / MOVE (Ax)+,d(Ay) / MOVE -(Ax).d(Ay) MOVE d(Ax),d(Ay) / MOVE d(Ax,Dx),d(Ay) MOVE $xx.W,d(Ay) / MOVE $xxxx.L,d(Ay) MOVE d(PC),d(Ay) / MOVE d(PC,Dx),d(Ay) ' MOVE #xxxx,d(Ay) Açıklama : Destination adres register'ı içeriğine d değerini ekler ve source içeriğini bulduğu bu adrese yazar. Destination adres register'ının içeriği, toplamadan sonra değişmemiş olacaktır; toplama sadece fiziksel adresin tespit edilmesini sağlar. Etkilenen flaglar : -**00 Adresleme şekillerine göre harcadığı süre : MOVE Dx,d(Ay) = 12 CLCK, 12 CLCK, 16 CLCK MOVE Ax,d(Ay) = , 12 CLCK, 16 CLCK MOVE (Ax),d(Ay) = 16 CLCK, 16 CLCK, 24 CLCK MOVE (Ax)+,d(Ay) = 16 CLCK, 16 CLCK, 24 CLCK MOVE -(Ax),d(Ay) = 18 CLCK, 18 CLCK, <strong>26</strong> CLCK MOVE d(Ax),d(Ay) = 20 CLCK, 20 CLCK, 28 CLCK MOVE d(Ax,Dx),d(Ay) = 22 CLCK, 22 CLCK, 30 CLCK MOVE $xx.W,d(Ay) = 20 CLCK, 20 CLCK, 28 CLCK MOVE $xxxx.L,d(Ay) = 24 CLCK, 24 CLCK, 32 CLCK MOVE d(PC),d(Ay) = 20 CLCK, 20 CLCK, 28 CLCK MOVE d(PC,Dx),d(Ay) = 22 CLCK, 22 CLCK, 30 CLCK MOVE #xxxx,d(Ay) = 16 CLCK, 16 CLCK, 24 CLCK Komut: MOVE (MOVE data) Kullanım şekilleri: MOVE Dx,d(Ay,Dy) MOVE Ax,d(Ay,Dy) / MOVE (Ax),d(Ay,Dy) MOVE (Ax)+,d(Ay,Dy) / MOVE -(Ax),d(Ay,Dy) MOVE d(Ax),d(Ay,Dy) / MOVE d(Ax,Dx),d(Ay,Dy) MOVE $xx.W,d(Ay,Dy) / MOVE $xxxx.L,d(Ay,Dy) MOVE d(PC),d(Ay,Dy) / MOVE d(PC,Dx),d(Ay,Dy) MOVE #xxxx,d(Ay,Dy) Açıklama : Destination adres register'ı içeriğine destination data register'ı içeriğini ve d değerini ekler ve bulduğu adrese source'un içeriğini yazar. Bu arada destination register'lannın içerikleri değişmeyecektir. Yapılan toplama sadece destination adresini bulmayı sağlar. Bu tür adresleme şekilne indekslioffsetli adresleme denir. Etkilenen flaglar : -**00 Adresleme şekillerine göre harcadığı süre : MOVE Dx,d(Ay,Dy) = 14 CLCK, 14 CLCK, 18 CLCK MOVE Ax,d(Ay,Dy) = ------ , 14 CLCK, 18 CLCK MOVE (Ax),d(Ay,Dy) = 18 CLCK, 18 CLCK, <strong>26</strong> CLCK MOVE (Ax)+,d(Ay,Dy) = 18 CLCK, 18 CLCK, <strong>26</strong> CLCK MOVE -(Ax),d(Ay,Dy) = 20 CLCK, 20 CLCK, 28 CLCK MOVE d(Ax),d(Ay,Dy) = 22 CLCK, 22 CLCK, 30 CLCK MOVE d(Ax,Dx),d(Ay,Dy) =24 CLCK, 24 CLCK, 32 CLCK MOVE $xx.W,d(Ay,Dy) = 22 CLCK, 22 CLCK, 30 CLCK MOVE $xxxx.L,d(Ay,Dy) = <strong>26</strong> CLCK, <strong>26</strong> CLCK, 34 CLCK MOVE d(PC),d(Ay,Dy) = 22 CLCK, 22 CLCK, 30 CLCK MOVE d(PC,Dx),d(Ay,Dy) =24 CLCK, 24 CLCK, 32 CLCK MOVE #xxxx,d(Ay,Dy) = 18 CLCK, 18 CLCK, <strong>26</strong> CLCK Komut: MOVE (MOVE data) Kullanım şekilleri: MOVE Dx,$yy.W / MOVE Ax,$yy.W MOVE (Ax),$yy.W / MOVE (Ax)+,$yy.W MOVE -(Ax),$yy.W / MOVE d(Ax),$yy.W AMIGA DÜNYASI 44
DERLEYİCİLER MOVE d(Ax,Dx),$yy.W / MOVE $xx.W,$yy.W MOVE $xxxx.L,$yy.W / MOVE d(PC),$yy.W MOVE d(PC,Dx),$yy.W / MOVE #xxxx,$yy. W Açıklama : Source'un içeriğini destination adresine yazar. Destination adresi word sınırını geçmemelidir ($0000-$ffif). Etkilenen flaglar : -**00 . Adresleme şekillerine göre harcadığı süre : MOVE Dx,$yy.W = 12 CLCK, 12 CLCK, 16 CLCK MOVE Ax,$yy.W = ------ , 12 CLCK, 16 CLCK MOVE (Ax),$yy.W = 16 CLCK, 16 CLCK, 24 CLCK MOVE (Ax)-f-Jyy. W = 16 CLCK, 16 CLCK, 24 CLCK MOVE -(Ax),$yy.W = 18 CLCK, 18 CLCK, <strong>26</strong> CLCK MOVE d(Ax),$yy.W = 20 CLCK, 20 CLCK, 28 CLCK MOVE d(Ax,Dx),$yy.W = 22 CLCK, 22 CLCK, 30 CLCK MOVE $xx.W,$yy.W = 20 CLCK, 20 CLCK, 28 CLCK MOVE $xxxx.L,$yy.W = 24 CLCK, 24 CLCK, 32 CLCK MOVE d(PC),$yy.W = 20 CLCK, 20 CLCK, 28 CLCK MOVE d(PC,Dx),$yy.W= 22 CLCK, 22 CLCK, 30 CLCK MOVE #xxxx,$yy.W = 16 CLCK, 16 CLCK, 24 CLCK Komut: MOVE (MOVE data) Kullanım şekilleri: MOVE Dx,$yyyy.L / MOVE Ax,$yyyy.L MOVE (Ax),$yyyy.L/ MOVE (Ax)+,$yyyy.L MOVE -(Ax),$yyyy.L/ MOVE d(Ax),$yyyy.L MOVE d(Ax,Dx),$yyyy.L/ MOVE $xx.W,$yyyy.L MOVE $xxxx.L,$yyyy.L/ MOVE d(PC),$yyyy.L MOVE d(PC,Dx),$yyyy.L / MOVE #xxxx,$yyyy.L Açıklama : Source içeriğini destination adresine yazar. Burada jestination adresi longword genişliğinde olabilir ($00000000- $ffffffff Etkilenen flaglar : -**00 Adresleme şekillerine göre harcadığı süre : MOVE Dx,$yyyy.L = 16 CLCK, 16 CLCK, 20 CLCK MOVE Ax,$yyyy.L = -------, 16 CLCK, 20 CLCK MOVE (Ax),$yyyy.L = 20 CLCK, 20 CLCK, 28 CLCK MOVE (Ax)+,$yyyy.L = 20 CLCK, 20 CLCK, 28 CLCK MOVE -(Ax),$yyyy.L = 22 CLCK, 22 CLCK, 30 CLCK MOVE d(Ax),$yyyy.L = 24 CLCK, 24 CLCK, 32 CLCK MOVE d(Ax,Dx),$yyyy.L = <strong>26</strong> CLCK, <strong>26</strong> CLCK, 34 CLCK MOVE $xx.W,$yyyy.L = 24 CLCK, 24 CLCK, 32 CLCK MOVE $xxxx.L,$yyyy.L = 28 CLCK, 28 CLCK, 36 CLCK MOVE d(PC),$yyyy.L = 24 CLCK, 24 CLCK, 32 CLCK MOVE d(PC,Dx),$yyyy.L = <strong>26</strong> CLCK, <strong>26</strong> CLCK, 34 CLCK MOVE #xxxx,$yyyy.L = 20 CLCK, 20 CLCK, 28 CLCK Komut: MOVE (MOVE data) Kullanım şekilleri: MOVE Dx,CCR / MOVE (Ax),CCR MOVE (Ax)+,CCR / MOVE -(Ax),CCR / MOVE d(Ax),CCR MOVE d(Ax,Dx),CCR / MOVE $xx.W,CCR MOVE $xxxx.L,CCR / MOVE d(PC),CCR MOVE d(PC,Dx),CCR / MOVE #xxxx,CCR Açıklama : Source içeriğini statü register'ına yazar. Statü egister'ı çeşitli flag'larınn olduğu register'dır. Etkilenen flaglar : ***** Adresleme şekillerine göre harcadığı süre : Bu komut sadece word genişliğinde çalışabilir, zira statü egister'ı 1 word genişliğindedir. MOVE Dx.CCR = 12 CLCK MOVE (Ax),CCR = 16 CLCK MOVE (Ax)+,CCR = 16 CLCK MOVE -(Ax),CCR - 18 CLCK MOVE d(Ax),CCR = 20 CLCK MOVE d(Ax,Dx),CCR = 22 CLCK MOVE $xx.W,CCR = 20 CLCK MOVE $xxxx.L,CCR = 24 CLCK MOVE d(PC),CCR = 20 CLCK MOVE d(PC,Dx),CCR = 22 CLCK MOVE #xxxx,CCR = 16 CLCK Komut: MOVE (MOVE data) Kullanım şekilleri: MOVE Dx,SR / MOVE (Ax),SR MOVE (Ax)+,SR / MOVE -(Ax),SR / MOVE d(Ax),SR MOVE d(Ax,Dx),SR / MOVE $xx.W,SR / MOVE $xxxx.L,SR MOVE d(PC),SR / MOVE d(PC,Dx),SR / MOVE #xxxx,SR Açıklama : Source içeriğini statü register'ına yazar. Statü AMIGA DÜNYASI 45