Bu sayfadaki yazılar
Sayfanın metni
Sayfa 37
Komut: MOVEQ (MOVE data Quick) Kullanım şekilleri: MOVEQ #x,Dy Açıklama: İlk üç bit kapsayan sayı değerlerinin (0...7, -1...-7) hızlı bir şekilde data register'ına yazılmasını sağlar. Aynı şekilde negatif (-1 (=$ffffffff), -2 (=fffffffe), ...) değerleri de bu komutla kullanabilirsiniz.
Etkilenen flaglar: -**00 Adresleme şekillerine göre harcadığı süre: Bu komutla sadece -7...7 arasındaki değerleri yazabilirsiniz. Bu yüzden tek bir süreç mevcuttur.
MOVEQ #x,Dy = 4 CLCK Komut: MULS (do mathematical Multiplication, Signed) Kullanım şekilleri: MULS Dx,Dy / MULS (Ax),Dy MULS (Ax)+,Dy / MULS -(Ax),Dy MULS d(Ax),Dy / MULS d(Ax,Dx),Dy MULS $xx.W,Dy / MULS $xxxx.L,Dy MULS d(PC),Dy / MULS d(PC,Dx),Dy MULS #xxxx,Dy Açıklama: Source içeriğini destination data register'ıyla çarparak sonucu destination data register'ına yazar. Çarpım sırasında negatif değerler dikkate alınır.
Etkilenen flaglar: -**00 Adresleme şekillerine göre harcadığı süre: Çarpım işlemi sadece word genişliğinde yapılabilir. MULS Dx,Dy = 70 CLCK MULS (Ax),Dy = 74 CLCK MULS (Ax)+,Dy = 74 CLCK MULS -(Ax),Dy = 76 CLCK MULS d(Ax),Dy = 78 CLCK MULS d(Ax,Dx),Dy = 80 CLCK MULS $xx.W,Dy = 78 CLCK MULS $xxxx.L,Dy = 82 CLCK MULS d(PC),Dy = 78 CLCK MULS d(PC,Dx),Dy = 80 CLCK MULS #xxxx,Dy = 74 CLCK
Komut: MULU (do mathematical MULtiplication, Unsigned) Kullanım şekilleri: MULU Dx,Dy / MULU (Ax),Dy MULU (Ax)+,Dy / MULU -(Ax),Dy / MULU d(Ax),Dy MULU d(Ax,Dx),Dy / MULU $xx.W,Dy / MULU $xxxx.L,Dy MULU d(PC),Dy / MULU d(PC,Dx),Dy / MULU #xxxx,Dy Açıklama: Çarpım işlemi, çarpım sırasında negatif sayılar da pozitif sayı kabul edilerek yapılır.
Etkilenen flaglar: -**00 Adresleme şekillerine göre harcadığı süre: Çarpım işlemi sadece word genişliğinde yapılabilir. MULU Dx,Dy = 70 CLCK MULU (Ax),Dy = 74 CLCK MULU (Ax)+,Dy = 74 CLCK MULU -(Ax),Dy = 76 CLCK MULU d(Ax),Dy = 78 CLCK MULU d(Ax,Dx),Dy = 80 CLCK MULU $xx.W,Dy = 78 CLCK MULU $xxxx.L,Dy = 82 CLCK MULU d(PC),Dy = 78 CLCK MULU d(PC,Dx),Dy = 80 CLCK MULU #xxxx,Dy = 74 CLCK Komut: NBCD (Negate Binary Coded Decimal) Kullanım şekilleri: NBCD Dy / NBCD (Ay) / NBCD (Ay)+ NBCD -(Ay) / NBCD d(Ay) / NBCD d(Ay,Dy) / NBCD $yy.W NBCD $yyyy.L Açıklama: Destination'daki Decimal sayı sistemine göre kodlanmış binary sayıyı 0'dan çıkarır. Sonuç destination'a yazılır.
Etkilenen flaglar: *U*U* Adresleme şekillerine göre harcadığı süre: Bu komutla sadece byte genişliğinde işlemler yapılabilir. NBCD Dy = 6 CLCK NBCD (Ay) = 12 CLCK NBCD (Ay)+ = 12 CLCK NBCD -(Ay) = 14 CLCK NBCD d(Ay) = 16 CLCK NBCD d(Ay,Dy) = 18 CLCK
NBCD $yy.W = 16 CLCK NBCD $yyyy.L = 20 CLCK
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 36
Etkilenen flaglar : ----- Adresleme şekillerine göre harcadığı süre : Bu komut sadece word genişliğinde çalışabilir, zira statü register'ı 1 word genişliğindedir.
MOVE Dx,SR = 12 CLCK MOVE (Ax),SR = 16 CLCK MOVE (Ax)+,SR = 16 CLCK MOVE -(Ax),SR = 18 CLCK MOVE d(Ax),SR = 20 CLCK MOVE d(Ax,Dx),SR = 22 CLCK MOVE $xx.W,SR = 20 CLCK MOVE $xxxx.L,SR = 24 CLCK MOVE d(PC),SR = 20 CLCK MOVE d(PC,Dx),SR = 22 CLCK MOVE #xxxx,SR = 16 CLCK Komut: MOVE (MOVE data) Kullanım şekilleri: MOVE SR,Dy / MOVE SR,(Ay) MOVE SR,(Ay)+ / MOVE SR,-(Ay) / MOVE SR,d(Ay) MOVE SR,d(Ay,Dy) / MOVE SR,$yy.W / MOVE SR,$yyyy.L Açıklama : Statü register'ının içeriğini destination'a yazar. Etkilenen flaglar : ----- Adresleme şekillerine göre harcadığı süre : Bu komut sadece word genişliğinde çalışır. MOVE SR,Dy = 6 CLCK MOVE SR,(Ay) = 12 CLCK MOVE SR,(Ay)+ = 12 CLCK MOVE SR,-(Ay) = 14 CLCK MOVE SR,d(Ay) = 16 CLCK MOVE SR,d(Ay,Dy) = 18 CLCK MOVE SR,$yy.W = 16 CLCK MOVE SR,$yyyy.L = 20 CLCK Komut: MOVE (MOVE data) Kullanım şekilleri: MOVE USP,Ay Açıklama : User stack pointer'ın adresini destination adres register'ına yazar.
Etkilenen flaglar : ---- Adresleme şekillerine göre harcadığı süre : MOVE USP,Ay = 4 CLCK Komut: MOVE (MOVE data) Kullanım şekilleri: MOVE Ax,USP Açıklama : Source adres register'ı içeriğini user stack pointer'a yazar.
Etkilenen flaglar : ----- Adresleme şekillerine göre harcadığı süre : MOVE Ax,USP = 4 CLCK Komut: MOVEA (MOVE data to Address register) Kullanım şekilleri: MOVEA Dx,Ay / MOVEA Ax,Ay MOVEA (Ax),Ay / MOVEA (Ax)+,Ay MOVEA -(Ax),Ay / MOVEA d(Ax),Ay MOVEA d(Ax,Dx),Ay / MOVEA $xx.W,Ay MOVEA $xxxx.L,Ay / MOVEA d(PC),Ay MOVEA d(PC,Dx),Ay / MOVEA #xxxx,Ay Açıklama : Source içeriğini verilen adres register'ına kopyalar. Etkilenen flaglar : ----- Adresleme şekillerine göre harcadığı süre : Destination, adres register'ı olduğundan bu komut byte genişliğinde çalışamaz. Komut süreçleri word ve longword genişliklerine göre verilmiştir.
MOVEA Dx,Ay = 4 CLCK, 4 CLCK MOVEA Ax,Ay = 4 CLCK, 4 CLCK MOVEA (Ax),Ay = 8 CLCK, 12 CLCK MOVEA (Ax)+,Ay = 8 CLCK, 12 CLCK MOVEA -(Ax),Ay = 10 CLCK, 14 CLCK MOVEA d(Ax),Ay = 12 CLCK, 16 CLCK MOVEA d(Ax,Dx),Ay = 14 CLCK, 18 CLCK MOVEA $xx.W,Ay = 12 CLCK, 16 CLCK MOVEA $xxxx.L,Ay = 16 CLCK, 20 CLCK
MOVEA d(PC),Ay = 12 CLCK, 16 CLCK MOVEA d(PC,Dx),Ay = 14 CLCK, 18 CLCK MOVEA #xxxx,Ay = 8 CLCK, 12 CLCK Komut: MOVEM (Move Multiple registers) Kullanım şekilleri: MOVEM (Ax),RL / MOVEM (Ax)+,RL MOVEM d(Ax),RL / MOVEM d(Ax,Dx),RL MOVEM $xx.W,RL / MOVEM $xxxx.L,RL MOVEM d(PC),RL / MOVEM d(PC,Dx),RL Açıklama : Source içeriğini destination register'larına yazar. Eğer artırmalı adresleme ((Ax)+) kullanılmışsa, verilen bir adresten sonra gelen değerleri sırayla verilmiş olan register'lara yazar. Register listesi (RL) üç şekilde girilebilir:
1. Her register teker teker yazılır ve aralarına birer / işareti konulur. (MOVEM (A7)+,d0/d1/d2/d3/d4/d5/d6/d7)
2. Atlama olmadan kullanılan register dizisi varsa bunların başlangıç ve bitiş register'ları aralarına - işareti konularak yazılır. (MOVEM (A7)+,d0-d7 gibi)
3. Her iki yöntemin kombinasyonu şeklinde. (MOVEM (A7)+,d0-d7/a0-a6 gibi)
Etkilenen flaglar : ----- Adresleme şekillerine göre harcadığı süre : Bu komut byte genişliğinde çalışamaz. Byte genişlik kullanılmak istenirse bile, word genişliği seçilmelidir. Bu yüzden aşağıdaki süreçler word ve longword genişlikleri içindir. MOVEM (Ax),RL = 12 CLCK, 12 CLCK MOVEM (Ax)+,RL = 12 CLCK, 12 CLCK MOVEM d(Ax),RL = 16 CLCK, 16 CLCK MOVEM d(Ax,Dx),RL = 18 CLCK, 18 CLCK MOVEM $xx.W,RL = 16 CLCK, 16 CLCK MOVEM $xxxx.L,RL = 20 CLCK, 20 CLCK MOVEM d(PC),RL = 16 CLCK, 16 CLCK MOVEM d(PC,Dx),RL = 18 CLCK, 18 CLCK Komut: MOVEM (MOVE Multiple registers) Kullanım şekilleri: MOVEM RL,(Ay) / MOVEM RL,-(Ay) MOVEM RL,d(Ay) / MOVEM RL,d(Ay,Dy) MOVEM RL,$yy.W / MOVEM RL,$yyyy.L Açıklama : Register listesinde yer alan register içeriklerini destination'a yazar. Diğer MOVEM komutundaki kurallar bu komut için de geçerlidir.
Etkilenen flaglar : ----- Adresleme şekillerine göre harcadığı süre : Bu komut da sadece word ve longword genişliklerinde çalışır. Bu yüzden süreçler word ve longword modları içindir. MOVEM RL,(Ay) = 8 CLCK, 8 CLCK MOVEM RL,-(Ay) = 8 CLCK, 8 CLCK MOVEM RL,d(Ay) = 12 CLCK, 12 CLCK MOVEM RL,d(Ay,Dy) = 14 CLCK, 14 CLCK MOVEM RL,$yy.W = 12 CLCK, 12 CLCK MOVEM RL,$yyyy.L = 16 CLCK, 16 CLCK Komut: MOVEP (MOVE data to Peripheral chips) Kullanım şekilleri: MOVEP Dx,d(Ay) Açıklama : Amiga'nın yardımcı ciplerinin hafıza bölgelerine bilgi yazmayı sağlar. Destination adres register'ına çip bölgesinin başlangıç adresi yazılmalıdır. Bu cipler ilk önce yüksek değerlikli byte'ı istediklerinden MOVE işlemi bu sırayla yapılır. Copper ve blitter ciplerini direkt erişimde bu komut kullanılmalıdır.
Etkilenen flaglar : ----- Adresleme şekillerine göre harcadığı süre : MOVEP komutu sadece word ve longword genişliklerinde çalışır. MOVEP Dx,d(Ay) = 16 CLCK, 24 CLCK Komut: MOVEP (MOVE data from Peripheral chips) Kullanım şekilleri: MOVEP d(Ax),Dy Açıklama : Yardımcı ciplerden bilgiyi data register'ına yazmayı sağlar.
Etkilenen flaglar : ----- Adresleme şekillerine göre harcadığı süre : MOVEP d(Ax),Dy = 16 CLCK, 24 CLCK