Amiga Dünyası sayı 25, sayfa 27

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 27

ASSEMBLER

Selam!!! Geçen ay söz verdiğim gibi bu ay tüm iki köşelik sayfalarımı Amiga ve Assembler yazısına ayırıyorum. Çok uzun bir süredir yapmak istediğim, fakat yer darlığından hep bir sonraki aya ertelemek zorunda kaldığım bir konuya bu ay değineceğim. Bu ay vereceğim komutlar, Amiga'nın tüm Amiga komutlarıdır. Bu yüzden bu dokümanın zaman içerisinde size bir hayli yardımcı olacağını zannediyorum. Eğer yer kalırsa da tabii ki kaldığımız yerden devam ederek library fonksiyonlarını anlatmaya devam edeceğiz. Komut anlatımlarında bazı kısaltmalar kullanacağım. O yüzden de bunlara hemen kısaca değinmek istiyorum:

x : Source registeri — y : Destination registeri tiğinde daha hızlı arayıp bulmanızı sağlar. Adresleme şekline göre harcanan süre kısmında her adresleme tipine üç değer verilmiştir. Bu değerler adreslemenin yapıldığı bit genişliğine göredir. Sırayla bu değerler byte, word ve longword modunda alanı içerisinde kalan bir adres için belirtilmiştir. Eğer bir adresleme şeklinde belli bir SR (Status Register) değişikliğine izin verilmemişse harcanan süre kısmında burada belirtilmiştir. CCR : Şartlanma registeri (flagları) SSP : Supervisor stack göstergeci (Add Binary Coded Decimal) USP : User stack göstergeci imal sisteme göre binary olarak kodlanmış bir sayıyı aynı şekilde kodlanmış başka bir sayıya etkiler. Mantıksal EXOR işlemi nen flaglar : ABCD Dx,Dy U*U* içersinde yer alan ifadenin sonucu D0'a göre harcadığı süre adresleme komut : ABCD (Add Binary Coded Decimal)

D : Gerçek adresle PC adresi arasındaki fark Açıklama : Bir adres registerinin gösterdiği adresteki decimal X : Extend flag'ı sisteme göre binary olarak kodlanmış bir sayıyı diğer bir adres N : Negative flag'ı registerinin içeriğinin gösterdiği adresteki aynı şekilde kodlanmış Z : Zero flag'ı başka bir sayıya ekler. Overflow flag'ı Etkilenen flaglar : *U*U* C: Carry biti re harcadığı Süre: MSB : En yüksek değerlikli bit (duruma göre 31, 15 ya da 7) LSB : En alçak değerlikli bit (0. bit) şekilleri mathematical ADD) alçak değerli ADD Dx,Dy / ADD Ax,Dy / ADD (Ax),Dy / ADD CLCK : İşlemin aldığı CPU süreci Flag komut işlendikten sonra durum: ADD $xx.W,Dy / ADD $xxxx.L,Dy / ADD d(PC),Dy U : Flag'ın konumu belli olmaz 0 : Flag 0 değerini; b esir #xxxx,Dy destination : Source adresinin içeriğini destination register içeriğine sonuç destination registerine yazılır.

Status registerinin açılımı da şu şekilde: Supervisor kısmı: Bit 15-T re harcadığı süre : 4 CLCK, 4 CLCK, 6 CLCK

Bit 13-8 ——-—, 4CLCK, 8 CLCK it ADD (Ax),Dy 8CLCK, 8 CLCK, 8 CLCK Bigi ADD 8 CLCK, 8 CLCK, 14 CLCK Bit 8 - İnterrnpi maskesi (0. bil) ADD -(Ax),Dy 0 CLCK, 10 CLCK, 16 CLCK User : ADD d(Ax).Dy 2.CLCK. 12 CLCK, 18 CLCK ADD d(Ax,Dx),Dy 4 CLCK, 14 CLCK, 20 CLCK Bit 3.N ADD $xx.W,Dy 2 CLCK, 12 CLCK, 18 CLCK ADD $xxxx.L,Dy 6 CLCK, 16 CLCK, 22 CLCK Bit 1-V ADD d(PC),Dy 2. CLCK, 12 CLCK, 18 CLCK Bit 0-C ADD d(PC.Dx).Dy 4 CLCK, 14 CLCK, 20 CLCK

ADD #xxxx,Dy 8 CLCK, 8 CLCK, 14 CLCK Burada geri açıklamaya gerek kalmadığını görmüyorum. Belirtilen bitler 68020 ve daha gelişmiş CPU'larda bir anlam taşımakta; fakat bu da konumuz değil. Artık komutlara — ADD / ADD Da (Ay) / ADD Da / ADD geçebiliriz. Komutları alfabetik sırayla açıklamaya çalıştım. Bu,

ADD Dx,d(Ay) / ADD Dx,d(Ay,Dy) / ADD Dx,$yy.W

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