Bu sayfadaki yazılar
Sayfanın metni
Sayfa 74
ızın belirli bir hafıza ığını belirler: ON, adresine yerleştiril- OFF verilebilir. mesini sağlayabilir- SİNİZ. SETMMU SETMMU <option> olup olmad- ığını belirler: ON, PRINTT PRINTT <string> Verilen ifadeyi ek- OFF verilebilir. rana yazar. TEXT TEXT bloğu baş- PRINTV PRINTV Verilen <label> ya latır. Bkz. ETEXT <label/value>|,label/ |da <value>'ları ek- value...) rana yazar. XDEF XDEF Diğer kodlarda kul- lanılmak üzere ve- REM Açıklama bloğu rilen label'ları harici açar. REM / EREM olarak tanımlar. arasında kalan yaz- ılar derlenmez. ; ile| | XREF XREF Verilen — label'ların tek satırlık açıkla- harici tanımlar oldu- malar girebilirsiniz. ğunu belirtir. Der- leme işleminde aktif REPT REPT <number> REPT / ENDR aras- kaynak kodda bu ındaki blok ifadeler tanımlı ol- <number> kadar masa da derleme tekrarlanır. işlemi devam eder. RS RS.|size) <value> |Dâhili RS sayacına <value> ekler. Ör-| Hata Mesajları neklere bakınız. RSRESET RS sayacını sıfırlar. Hata Mesajı Açıklama RSSET RSSET <value> RS sayacını verilen Workspace Memory Full Proje için ayrılan hafıza bitti, değere eşitler. —M kullanın SECTİON İlabel) bir program Address Register Byte/Logic |Adres reg.'larına .B ile ulaşa- me |bölümü (section) mazsınız. mory)| başlatır. Tip CODE, DATA ve BSS ola- Ayrıca lojik işlem uygula- bilir, hafıza için C hamaz. tehip), (fasij and Ör. OR.W A0,DO (public) kullanı- labilir. Copper list, ses ve görüntü veri- Address Register Expected Adres reg. gereken yerde data lerini RAM'e veg. Kullanıldı koymak için kullana- bilirsiniz. Comma Expected , İle ayrılmış argüman gerekli SET (label) SET <value> <value>'ya Data Register Expected Data reg. gereken yerde adres eşitler. ECU ve - ile reg. kullanıldı aynıdır, ancak daha sonra aynı label için Double Symbol Aynı ifade iki kez tanımlanmış farklı değer SET edilebilir. Unexpected End of File Bir ifadesi açık kalmış SETCPU SETCPU <option> |CPU tipini belirler: 000, 010, 020, 030, End of File Dosya sonuna ulaşıldı 040, 060 olabilir. (Search) SETFPU SETFPU <option> İFPU olup olmad- User made FAL komutuna rastlandı
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 75
(compile-time)
Illegal Command
Geçersiz komut
Illegal Address Size
Geçersiz adres boyutu. Ör. CLR.B A0
Illegal Operand
Geçersiz argüman
Illegal Operator
Geçersiz operatör
Illegal Operator in BSS Area
BSS içinde yalnızca DS kullanın
Illegal Order
Argüman sırası hatalı. Ör: MOVEM.L A0,D4-D0/-(A7) ;Önce data sonra adres reg. verilmelidir.
Illegal Register Size
Geçersiz reg. boyutu. Ör: MOVE.L (A0,D0.B),D1 ;index reg. .W ya da .L olabilir
Illegal Section Type
Geçersiz SECTION tipi. Geçerli tipler: code, data, bss
Illegal Size
Hatalı boyut. Ör: ADDA.B D0,A0 ;adres reg. ile .B işlem yapılamaz
Illegal MACRO Definition
Geçersiz MACRO tanımı
Immediate Operand Expected
Bazı komutlar sadece
Include Jam
Include hatası
MACRO Overflow
İç içe en fazla 25 makro tanımlanabilir
Invalid Address Mode
Geçersiz adres modu
LOAD without ORG
LOAD komutu yalnızca ORG ile kullanılabilir
Makro Tanımlama
AsmOne/Pro bir makro assembler'dır. Yani kaynak kodlarınız içinde sık kullandığınız işlemleri kolayca yapmak ve tekrar tekrar yazmamak için çeşitli makrolar tanımlayabilirsiniz. Bu bölümde nasıl makro tanımlayacağımızı göreceğiz.
Bir makro tanımı yapmak için en uygun yer kodunuzun ilk satırlarıdır. Ayrıca tüm makrolarınızı ayrı bir include dosyasına da koyabilirsiniz. Bir makro tanımlaması aşağıdaki şekilde yapılır:
MYMACRO: MACRO
ENDM
Burada MYMACRO tanımladığımız makronun ismidir. İsmin büyük harfle yazılması şart değildir ancak kod içinde makro çağırılan yerleri kolayca görmek açısından bu şekilde kullanmak iyidir. Makro ismi aynı zamanda bir label gibidir bu nedenle ayarlarınızda label sonlarında : olması gerektiğini seçtiyseniz burada da olması gerekir. Ayrıca isim ile MACRO ifadesi aynı satırda olmalıdır.
CLEAN: MACRO moveg #0,d0 moveg #0,dl1l moveg #0,d2 ENDM
Makrolara Argüman Verme
Tanımladığınız makrolara 10 taneye kadar argüman ekleyebilirsiniz. Bunun için V0 - V9 ifadelerini kullanabilirsiniz. Aşağıdaki örneği inceleyin:
CLEAN: MACRO moveg #0,V1 TEST: MACRO move.l (V1)4, ENDM CLEAN D3
TEST AO,AL
Ayrıca NARG isimli değişken makro içinde, makronun kaç argümanla çağırıldığını görmek ve buna göre farklı adımlar uygulamak için kullanılabilir:
CLEAN: MACRO IF NARG - 2
elr.l WI elr.l v2 ELSE FAIL ENDIİF
ENDM
Daha karmaşık bir makro örneği aşağıdadır (AsmOne 1.4 Manual'den alıntıdır):
do it: MACRO btst bne.b vel move.l N2, d0 lsl.w #V3,dO0 bra.b Vel: moveg #0,dO ENDM start; do it 10,d2,3
Include dosyalarından (özellikle exec/types.i) pek çok makronun nasıl tanımlandığını görebilirsiniz.