Amiga Dünyası sayı 27, sayfa 35

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 35

Kullanım şekilleri: ROXL (Ay) / ROXL (Ay)+ / ROXL -(Ay) / ROXL d(Ay) / ROXL d(Ay,Dy) / ROXL $yy.W / ROXL $yyyy.L Açıklama: Bu komut tek bitlik ROL gibi destination içeriğini sola taşır ve taşan biti de 0. bite yazar. Bu taşan bit hem c, hem de x flag'lerini etkiler. Bu komutla sadece 8 biti aşmayan kaydırmalar yapılabilir. Etkilenen flaglar: ***0* Adresleme şekillerine göre harcadığı süre: Sadece word bazında çalışabilen bu komutun işlem süreleri aşağıdadır.

ROXL (Ay) — 12 CLCK / ROXL (Ay)+ — 12 CLCK / ROXL -(Ay) — 14 CLCK / ROXL d(Ay) — 14 CLCK / ROXL d(Ay,Dy) — 16 CLCK /

ROXL $yy.W — 16 CLCK / ROXL $yyyy.L — 20 CLCK Komut: ROXR (ROtate data Right) Kullanım şekilleri: ROXR Dx,Dy / ROXR #x,Dy Açıklama: Destination'ın içeriğini source'ta belirtilen sayı kadar sağa kaydırır. Taşan bit 31. bit yerine yazılır ve c ile x flag'ları da bu bitin durumuna göre değiştirilir. Bu komutla en fazla 8 bitlik kaydırma yapılabilir. Etkilenen flaglar: ***0* Adresleme şekillerine göre harcadığı süre: ROXR Dx,Dy — 6/2(Dx) CLCK, 6/2(Dx) CLCK, 6/2(Dx) CLCK ROXR #x,Dy — 6/2xCLCK, 6/2xCLCK, 6/2x CLCK Komut: ROXR (ROtate data Right-one bit) Kullanım şekilleri: ROXR (Ay) / ROXR (Ay)+ / ROXR -(Ay) / ROXR d(Ay) / ROXR d(Ay,Dy) / ROXR $yy.W / ROXR $yyyy.L Açıklama: Aynı 1 bitlik ROXL gibi çalışır; kaydırma yönü ise sağa doğrudur. Etkilenen flaglar: ***0* Adresleme şekillerine göre harcadığı süre: Bu komut sadece word bazında çalışır.

ROXR (Ay) — 12 CLCK / ROXR (Ay)+ — 12 CLCK / ROXR -(Ay) — 14 CLCK / ROXR d(Ay) — 14 CLCK / ROXR d(Ay,Dy) — 16 CLCK /

ROXR $yy.W — 16 CLCK / ROXR $yyyy.L — 20 CLCK Komut: RTE (ReTurn from Exception) Kullanım şekilleri: RTE Açıklama: Özel bir işletim durumu olan exception'dan (trap ve özel bazı interrupt'lar) ana rutine geri dönmeyi sağlar. Komuta gelindiğinde stack pointer'a en son atılan değer statü register'ına geri kopyalanır, stack adresi 4 byte ileri çekilir. Bu durumda stack'in gösterdiği yeni değer, exception'a dallanmadan önce stack'e atılan en son değer olacaktır. Ardından stack pointer'ın yeni gösterdiği değer yeni çalışma adresi olarak alınarak programın çalışmasına buradan devam edilecektir. Exception rutinine girmemizi sağlayan TRAP komutu zaten buraya exception rutininin dönüş adresini yazmıştı. Etkilenen flaglar: ***** Komut: RTR (ReTuRn) Kullanım şekilleri: RTR Açıklama: Bu komut da aynı RTE gibi çalışır; fakat stack pointer'ın komut işlenmeden önce gösterdiği adresteki değer statü register'ına değil CCR'ye (Condition Code Register) kopyalanır. Bu komut yardımıyla exception'a dallanmadan hemen önceki flag durumlarını da geri alabilir ve exception'a dallanmadan önceki flag durumlarına göre çeşitli özel dallanmaları exception rutinini çağırdıktan sonra da gerçekleştirebilirsiniz. Etkilenen flaglar: ***** Adresleme şekillerine göre harcadığı süre: 20 CLCK Komut: RTS (ReTurn from Sub-routine) Kullanım şekilleri: RTS Açıklama: Bir program içinde BSR ile dallanma yaptığınızda, altrutinden dallanmanın yapıldığı satırın sonrasına dönüp ana rutine kaldığınız yerden devam etmek istiyorsanız, bu komutu ana rutine dönmek istediğiniz yere koyun. Her program aynı zamanda bir altrutin olarak da görülebileceğinden programınızın sonuna RTS eklemekle programdan çıkmayı sağlayabilirsiniz. BSR komutu, son kalınan adresi stack'e atar. RTS ise stack'e atılan bu değeri alır ve programa o adresten devam eder. Etkilenen flaglar: ----- Komut: SBCD (Sub Binary Coded Decimal) Kullanım şekilleri: SBCD Dx,Dy Açıklama: 10'lu sisteme göre binary olarak kodlanmış sayıları birbirinden çıkarır. Destination register'ı içeriği, source register içeriğinden çıkarılarak destination'a yazılır. Etkilenen flaglar: *U*U* Adresleme şekillerine göre harcadığı süre: Bu komut sadece byte genişliğinde çalışır: SBCD Dx,Dy — 6 CLCK Komut: SBCD (Sub Binary Coded Decimal) Kullanım şekilleri: SBCD -(Ax),-(Ay) Açıklama: Destination adres register'ının gösterdiği adresin içeriği source adres register'ının gösterdiği adresin içeriğinden çıkarılarak destination adres register'ının gösterdiği adrese yazılır. İşlemden sonra source ve destination adres register'ları 2'şer byte (1 word) geri çekilir. Etkilenen flaglar: *U*U* Adresleme şekillerine göre harcadığı süre: Bu komut sadece word bazında çalışır: SBCD -(Ax),-(Ay) — 18 CLCK Komut: Szz Kullanım şekilleri: Szz Dy / Szz (Ay) / Szz (Ay)+ / Szz -(Ay) / Szz d(Ay) / Szz d(Ay,Dy) / Szz $yy.W / Szz $yyyy.L Açıklama: Belirtilen şart gerçekleşirse, destination'a $ff değeri yazılır. Diğer durumlarda destination'un içeriği 0 olur. Etkilenen flaglar: Adresleme şekillerine göre harcadığı süre: Bu komut sadece byte genişliğinde çalışabilir.

Szz Dy — 6 CLCK / Szz (Ay) — 12 CLCK / Szz (Ay)+ — 12 CLCK / Szz -(Ay) — 14 CLCK / Szz d(Ay) — 16 CLCK / Szz d(Ay,Dy) — 18 CLCK / Szz $yy.W — 16 CLCK / Szz $yyyy.L — 20 CLCK Komut: STOP Kullanım şekilleri: STOP #$xx

Açıklama: Verilen değeri statü register'ına yazar ve programı durdurur. Program ancak TRACE modu işler duruma getirildiğinde ya da RESET hattı 0'a çekildiğinde (RESET komutu ya da hardware ile) çalışmaya devam eder. Etkilenen flaglar: ***** Komut: SUB (SUBtract two datas) Kullanım şekilleri: SUB Dx,Dy / SUB Ax,Dy / SUB (Ax),Dy / SUB (Ax)+,Dy / SUB -(Ax),Dy / SUB d(Ax),Dy / SUB d(Ax,Dx),Dy / SUB $xx.W,Dy / SUB $xxxx.L,Dy / SUB d(PC),Dy / SUB d(PC,Dx),Dy / SUB #$xxxx,Dy Açıklama: Destination data register'ının içeriğinden source'u çıkararak sonucu destination data register'ına yazar. Taşma (V) flag'ı gözönüne alınmaz. Etkilenen flaglar: ***** Adresleme şekillerine göre harcadığı süre: SUB Dx,Dy — 4 CLCK, 4 CLCK, 6 CLCK / SUB Ax,Dy — 4 CLCK, 8 CLCK / SUB (Ax),Dy — 8 CLCK, 8 CLCK, 14 CLCK / SUB (Ax)+,Dy — 8 CLCK, 8 CLCK, 14 CLCK / SUB -(Ax),Dy — 10 CLCK, 10 CLCK, 16 CLCK / SUB d(Ax),Dy — 12 CLCK, 12 CLCK, 18 CLCK / SUB d(Ax,Dx),Dy — 14 CLCK, 14 CLCK, 20 CLCK / SUB d(PC),Dy — 12 CLCK, 12 CLCK, 18 CLCK

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