Amiga Dünyası sayı 27, sayfa 36

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 36

SUB $xxxx.L,Dy — 16 CLCK, 16 CLCK, 22 CLCK / SUB d(PC,Dx),Dy — 14 CLCK, 14 CLCK, 20 CLCK / SUB #$xxxx,Dy — 8 CLCK, 8 CLCK, 14 CLCK Komut: SUB (SUBtract two datas) Kullanım şekilleri: SUB Dx,Dy / SUB Dx,(Ay) / SUB Dx,(Ay)+ / SUB Dx,-(Ay) / SUB Dx,d(Ay) / SUB Dx,d(Ay,Dy) / SUB Dx,$yy.W / SUB Dx,$yyyy.L Açıklama: Destination'dan source data register'ı içeriğini çıkararak sonucu destination'a yazar. Etkilenen flaglar: ***** Adresleme şekillerine göre harcadığı süre: SUB Dx,Dy — 4 CLCK, 4 CLCK, 6 CLCK / SUB Dx,(Ay) — 12 CLCK, 12 CLCK, 20 CLCK / SUB Dx,(Ay)+ — 12 CLCK, 12 CLCK, 20 CLCK / SUB Dx,-(Ay) — 14 CLCK, 14 CLCK, 22 CLCK / SUB Dx,d(Ay) — 16 CLCK, 16 CLCK, 24 CLCK / SUB Dx,d(Ay,Dy) — 18 CLCK, 18 CLCK, 26 CLCK / SUB Dx,$yy.W — 16 CLCK, 16 CLCK, 24 CLCK / SUB Dx,$yyyy.L — 20 CLCK, 20 CLCK, 28 CLCK Komut: SUBA (SUBtract from Address-register) Kullanım şekilleri: SUBA Dx,Ay / SUBA Ax,Ay / SUBA (Ax),Ay / SUBA (Ax)+,Ay / SUBA -(Ax),Ay / SUBA d(Ax),Ay / SUBA d(Ax,Dx),Ay / SUBA $xx.W,Ay / SUBA $yyyy.L,Ay / SUBA d(PC),Ay / SUBA d(PC,Dx),Ay / SUBA #$xxxx,Ay Açıklama: Destination adres register'ından source'un içeriğinin çıkarılarak sonucun destination adres register'ına yazılmasını sağlar. Destination adres register'ı olduğundan bu komutla sadece word ve longword bazında işlem yapabilirsiniz. Etkilenen flaglar: Adresleme şekillerine göre harcadığı süre: Destination adres register'ı olduğundan bu komutla byte genişliğinde işlem yapılamaz. Aşağıdaki işlem süreçleri de bu yüzden sırf word ve longword genişlikleri içindir.

SUBA Dx,Ay — 8 CLCK, 8 CLCK / SUBA Ax,Ay — 8 CLCK, 8 CLCK / SUBA (Ax),Ay — 12 CLCK, 14 CLCK / SUBA (Ax)+,Ay —

12 CLCK, 14 CLCK / SUBA -(Ax),Ay — 14 CLCK, 16 CLCK / SUBA d(Ax),Ay — 16 CLCK, 18 CLCK / SUBA d(Ax,Dx),Ay — 18 CLCK, 20 CLCK / SUBA $xx.W,Ay — 16 CLCK, 18 CLCK / SUBA $yyyy.L,Ay — 20 CLCK, 22 CLCK / SUBA d(PC),Ay — 16 CLCK, 18 CLCK / SUBA d(PC,Dx),Ay — 18 CLCK, 20 CLCK / SUBA #$xxxx,Ay — 12 CLCK, 14 CLCK Komut: SUBI (SUBtract from) Kullanım şekilleri: SUBI #$xxxx,Dy / SUBI #$xxxx,(Ay) / SUBI #$xxxx,(Ay)+ / SUBI #$xxxx,-(Ay) / SUBI #$xxxx,d(Ay) / SUBI #$xxxx,d(Ay,Dy) / SUBI #$xxxx,$yy.W / SUBI #$xxxx,$yyyy.L Açıklama: Source olarak belirtilen değeri destination'ın içeriğinden çıkararak sonucu destination'a yazar. Etkilenen flaglar: ***** Adresleme şekillerine göre harcadığı süre: SUBI #$xxxx,Dy — 8 CLCK, 8 CLCK, 16 CLCK / SUBI #$xxxx,(Ay) — 16 CLCK, 16 CLCK, 28 CLCK / SUBI #$xxxx,(Ay)+ — 16 CLCK, 16 CLCK, 28 CLCK / SUBI #$xxxx,-(Ay) — 18 CLCK, 18 CLCK, 30 CLCK / SUBI #$xxxx,d(Ay) — 20 CLCK, 20 CLCK, 32 CLCK / SUBI #$xxxx,d(Ay,Dy) — 22 CLCK, 22 CLCK, 34 CLCK / SUBI #$xxxx,$yy.W — 20 CLCK, 20 CLCK, 32 CLCK / SUBI #$xxxx,$yyyy.L — 24 CLCK, 24 CLCK, 36 CLCK Komut: SUBQ (SUBtract Quickly) Kullanım şekilleri: SUBQ #x,Dy / SUBQ #x,Ay / SUBQ #x,(Ay) / SUBQ

SUBQ #x,-(Ay) / SUBQ #x,d(Ay) / SUBQ #x,d(Ay,Dy) / SUBQ #x,$yy.W / SUBQ #x,$yyyy.L Açıklama: Destination'ın içeriğinden source'ta belirtilen değer çıkarılır. Sonucu destination'da bulabilirsiniz. Bu komut sadece ilk üç biti kapsayan çıkarma işlemleri (1-8) için uygundur. Etkilenen flaglar: ***** Adresleme şekillerine göre harcadığı süre: SUBQ #x,Dy — 4 CLCK, 4 CLCK, 8 CLCK / SUBQ #x,Ay — 8 CLCK, 8 CLCK / SUBQ #x,(Ay) — 12 CLCK, 12 CLCK, 20 CLCK / SUBQ #x,(Ay)+ — 12 CLCK, 12 CLCK, 20 CLCK / SUBQ #x,-(Ay) — 14 CLCK, 14 CLCK, 22 CLCK / SUBQ #x,d(Ay) — 16 CLCK, 16 CLCK, 24 CLCK / SUBQ #x,d(Ay,Dy) — 18 CLCK, 18 CLCK, 26 CLCK / SUBQ #x,$yy.W — 16 CLCK, 16 CLCK, 24 CLCK / SUBQ #x,$yyyy.L — 20 CLCK, 20 CLCK, 28 CLCK Komut: SUBX (SUBtract with X-flag) Kullanım şekilleri: SUBX Dx,Dy Açıklama: Destination data register'ının içeriğinden source data register'ının içeriği çıkarılır. Bu sonuçtan da X flag'ı 1 ise 1 çıkarılır ve sonuç destination data register'ına yazılır. Etkilenen flaglar: ***** Adresleme şekillerine göre harcadığı süre: SUBX Dx,Dy — 4 CLCK, 4 CLCK, 8 CLCK Komut: SUBX (SUBtract with X-flag) Kullanım şekilleri: SUBX -(Ax),-(Ay) Açıklama: Destination adres register'ının gösterdiği adres içeriğinden source adres register'ının gösterdiği adresin içeriği çıkarılarak destination adres register'ının gösterdiği adrese yazılır. İşlemden sonra da her iki adres register'ının içerikleri adresleme genişliğine göre 1, 2 ya da 4 byte azaltılır. Etkilenen flaglar: ***** Adresleme şekillerine göre harcadığı süre: SUBX -(Ax),-(Ay) — 18 CLCK, 18 CLCK, 30 CLCK Komut: SWAP Kullanım şekilleri: SWAP Dy Açıklama: Belirtilen data register'ının içeriğinde üst word ile alt word'un yerlerini değiştirir. Etkilenen flaglar: -**00 Adresleme şekillerine göre harcadığı süre: SWAP Dy — 4 CLCK Komut: TAS (Test And Set) Kullanım şekilleri: TAS Dy / TAS (Ay) / TAS (Ay)+ / TAS -(Ay) / TAS d(Ay) / TAS d(Ay,Dy) / TAS $yy.W / TAS $yyyy.L Açıklama: Destination'un içeriğini test eder (0 ile karşılaştırır) ve C flag'ı 0 ise destination'un 7. bitini 1 yapar. Etkilenen flaglar: -**00 Adresleme şekillerine göre harcadığı süre: Bu komut sadece byte genişliğinde çalışabilmektedir.

CLCK, 26

TAS Dy — 4 CLCK / TAS (Ay) — 14 CLCK / TAS (Ay)+ — 14 CLCK / TAS -(Ay) — 16 CLCK / TAS d(Ay) — 18 CLCK / TAS d(Ay,Dy) — 20 CLCK / TAS $yy.W — 18 CLCK / TAS $yyyy.L — 22 CLCK Komut: TRAP Kullanım şekilleri: TRAP #x Açıklama: 68000'in exception modlarından birine girmesini sağlar. Toplam 16 exception modu (0...15) vardır. Bu komuta rastlanıldığında PC (Program Counter) Supervisor Stack Pointer'ın (SSP) gösterdiği adrese atılır ve bu pointer 4 byte geri çekilir. Bu yeni adrese de Statü Register'ı kopyalanır ve SSP yine 4 byte geri çekilir. Bundan sonra da trap rutinin adresi alınarak o adrese gidilir. Etkilenen flaglar:

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