Amiga Dünyası sayı 18, sayfa 27

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 27

<SHIFT>+<KURSOR SAĞA>: Bulunduğunuz satırın en sonuna gitmenizi sağlar. Bu, editör dışında da kullanılabilir.

<SHIFT>+<KURSOR SOLA>: Bulunduğunuz satırın en başına gitmenizi sağlar. Bu, editör dışında da kullanılabilir.

<SHIFT>+<KURSOR YUKARI>: Editörde bir ekran yukarı gitmenizi sağlar.

<SHIFT>+<KURSOR AŞAĞI>: Editörde bir ekran aşağı gitmenizi sağlar.

Tuş kısaltmalarını da verdikten sonra, kalanlar arasında ilk gözüme çarpanlar ekstra komutlar. Bunlar, source'u yazarken kullanılıyor ve çoğu diğer assembler derleyicileriyle uyumlu bir çalışma sağlamak için eklenmiş.

ALIGN <boşluk>(,<ofset>): Program sayacına boşluk ve ofsetin toplamını ekler. Bu sayede ileriye doğru ufak bir atlama yapılır.

BLK.B/W/L <boyut>(,<data>): <boyut> ile belirtilen boyutta (byte/word/longword) göre blok ayırtarak <data> ile doldurur. Örneğin –blk.l 5,0 komutu 20 byte (=5 long-word)’lık bir bölge ayırtarak bunu 0 değeriyle doldurur.

CODE: Programın kod kısmının başladığını belirtir.

CNOP <boşluk>(,<ofset>): Align ile aynı işlemi yapar. DC.B/W/L: Data tanımlamalarında kullanılır.

DS.B/W/L <boyut>(,<data>) Blk ile aynı işlemi yapar.

ENDIF: Şartlanmadan çıkışı sağlar. ENDM: Makro tanımlamasını bitirir. EQU: Sembol tanımlamayı sağlar. Bunlar değişken olmayan değerlerdir. Programınızın daha anlaşılır olmasını sağlar. Bu komutu bir label'dan sonra kullanmalısınız.

ELSE: Şartlı assembler komutları. EVEN: Program sayacını çift numaralı bir adrese getirir. Bunu tek bir byte’lık değişken kullandığınızda kullanmalısınız.

END: Source'un sonunu belirler. Kullanılmasa da olur.

FAIL: Compile etme işlemini yarıda keser. Şartlı makro kullanımında çok işe yarar.

GLOBL: Link işleminde kullanılan global sembolleri tanımlamak için kullanılır.

IF<koşul>: Şartlı assemble için kullanılır. ILLEGAL: Program çalışırken bu satıra gelindiğinde durulmasını sağlar. MasterSeka ekranına dönmek için, <sol Amiga>+<M> tuş kombinasyonunu kullanmanız gerekmekte. Bu komut aslında program içinde duruş noktası (breakpoint) koymanızı sağlar. Hex kodu $4afc'dir. Bu komutu kullanarak programınızın belli yerlerinde register içeriklerini öğrenebilirsiniz.

INCBIN <isim> (,<adres>): Compile edildikten sonra gerekli dataların obje dosyasına yüklenmesini sağlar. Hafızada yer olarak direkt source'ta bulundukları yer gösterilir. Adres verilirse datalar o adresten itibaren yerleştirilir. Bu komut, EXTERN komutundan daha kullanışlıdır; zira yükleme işlemi direkt compile sırasında otomatik olarak yapılır.

INCDIR <dir>: INCBIN ve INCLUDE komutları için directory belirlenir.

INCLUDE <isim>: Compile sırasında disketten başka bir source'u da kendi source'unuza eklemek için kullanılır. Fakat eklenen bu source, sadece derlenmiş olan object file'da gözükür. İsterseniz bu şekilde değişik alt rutinleri diskete kaydedip kullanın, isterseniz diğer assembler derleyicilerinde olduğu gibi sembol ve structure’ları bu dosyalarda tanımlayarak source’unuzun daha düzenli gözükmesini sağlayın.

LIST: Compile ederken listelemeyi açar.

LOAD<adres>: Compile ederken programınızın adresten sonra yerleştirilmesini sağlar. Bu şekilde program adrese bağımlı çalışacağından relatif olmaz. (reloc tipi programlama)

MACRO: Makro rutin tanımlamasını başlatır. Bu komutu bir label'dan sonra kullanmalısınız.

NARG: Bu makro tanımlamalarında kullanılmak üzere rezerve edilmiş bir semboldür. Bu sayede makroya aktarılan data adedini algılayabilir ve buna göre davranabilirsiniz.

LABEL MACRO IF NARG=1 Move.l #1.d0 ELSE FAİL ENDM Bu örnekte makroya aktarılan data sayısı kontrol edilmekte eğer data sayısı 1’den farklıysa compile etme işlemi kesilir.

NLIST: Compile sırasında listelemeyi kapar. NOLIST: NLIST komutu ile aynı işlemi yapar.

ODD: Program sayacını (PC) tek adrese getirir.

OPT <opsiyon><+/->: Compile sırasında kullanılacak opsiyonları belirlemek için kullanılır. Her satırda ayrı bir opsiyon kullanılmalıdır. <+> ile o opsiyonu açar, <-> ile de aynı opsiyonu kapayabilirsiniz.

ORG <adres>: Programınızın verilen adresten başka adreste çalışmamasını (absolute code) sağlar.

PAGE: Compile ederken listelemede her sayfa sonunda bir tuşa basmanızı bekler.

PLEN <satır>: Compile ederken sayfa yüksekliğini ayarlamanızı sağlar.

PVID <kolon>: Compile ederken sayfa genişliğini ayarlamanızı sağlar.

PINIT<parametre>: Sayfa ayarlamalarını yapmanızı sağlar.

SECTION <isim>,<tip>: Programınızın belli kısımlarını farklı hunklara böler. Tip olarak code (assembler kod), code_c (chip memory'e yerleştirilecek assembler kod), bss (programın çalışması sırasında değeri belli olan datalar) ve bss_c (chip memory'e yerleşecek olan belirsiz datalar) kullanılabilir.

Bunların dışında MasterSeka 68010/68020 komutlarından birçoğunu da desteklemekte. Bu komutları 68010/68020 olmayan bir bilgisayarda kullanmaya kalkışırsanız, MasterSeka sizi uyaracaktır. Eğer 68010/68020'niz varsa ve bu komutlardan birini kullanırsanız, komutun olduğu satıra açıklama koymayın.

Şimdi gelelim MasterSeka hakkında bazı kullanım notlarına. Bunlar genel çalışma sırasında işinizi kolaylaştırır.

-> Compile ederken O opsiyonunu kullanıyorsanız ve bazı dallanma komutlarının değiştirilmesini istiyorsanız, takısını küçük harfle yazın; bra, bra.s, bra.l komutları daha uygun bir bra komutuyla değiştirilir. Fakat .S/.L takısını büyük harfle yazarsanız bunlara dokunulmaz.

-> f komutu, daha uzun data tiplerini de aramayı sağlamakta. Data satırına virgüllerle ayrılmış bir sürü byte yazacağınıza bunların arasına hiçbir işaret koymadan da yazabilirsiniz.

-> <SHIFT>+<Fn> ile kursorun bulunduğu yeri işaretleyerek daha sonra buraya sadece <Fn> tuşuna basarak buraya direkt gelebilirsiniz.

-> Bulunduğunuz directory ve drive pencerenin üst çubuğunda görülebilir.

-> MOVEQ komutuna yeni iki mod daha eklenmiş. Bunlardan ilki MOVEQ.L #x, Dn. Bu komut sayesinde -128 ile 128 arası bir değer, quick modda yazılmakta (moveq komutu daha önce sadece 0 ile 7 arasında çalışmaktaydı). Aynı komutun bir değişik kullanımı da .L takısını atmak -256 ile 256 arasında bir rakamı quick modda yazmak içinse, şu komutu kullanabilirsiniz: MOVEQ.B #y,Dn. Bu tür bir komut normalde 68000'de bulunmamakta!!!

-> Editörde <HELP> tuşuna art arda basarak pencerenin üst çubuğunda bazı yardımcı bilgiler görebilirsiniz. Bunlar <sağ Amiga> ile birlikte kullanılabilecek tuşlardır. <CTRL>+<HELP> ile de <CTRL> tuşuna basarken kullanabileceğimiz komutları görebilirsiniz.

-> MasterSeka'yı CLI'dan çağırıyorsanız burada startup komutlarını kullanabileceğiniz gibi sadece sayı girerek çalışma alan boyutunu belirlemeniz mümkün. Aynı şekilde sadece isim girerek source'un otomatik olarak yüklenmesini de sağlayabilirsiniz. Tabii bütün bu komutları art arda aralarında birer boşluk bırakarak kombine kullanmanız da mümkün.

-> Değişken label ya da sembol tanımlarken artık <:> işaretlerini kullanmamıza gerek yok.

-> Makro tanımlamalarında eksik olan ENDM komutu varsa, uyarı ile karşılaşırsınız.

-> Makro tanımlamalarında ana programdan gelen bilgileri tanımlamak için hem @, hem de <?> işaretlerini kullanabilirsiniz:

RUTİN: MACRO move.w #?1,d0 move.w #2,d1 ENDM Program başında bu satırları kullandıktan sonra program içinde gerekli yere şöyle bir satır eklerseniz, bu assemble ederken otomatik olarak değiştirilir.

RUTİN 5,15 compile edildikten sonra: move.w #5,d0

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