ASEMBLER'IN ÜRETTİĞİ HATA KODLARI

 

Derleme esnasında yazdığımız programa $INCLUDE ( dosya ) ile program parçaları dahil ettiğimizde, bu dosyaların açılmasında oluşan hata kodu :

FATAL ERROR opening (dosya ismi )

şeklinde bizi uyarır. Dosya isminin doğru olup olmadığını tekrar kontrol etmemiz gerekir.Programın derlenmesinden sonra

ASEMBLY COMPLETE , 02 ERRORS FOUND

Mesajı geldiğinde yazılımda 2 hata yaptığımızı belirtir. " Liste .LST " komutuyla listeyi çağırıp hatalarımızı satır satır görebiliriz. " ESC " tuşuna basarak programa tekrar dönebiliriz.

Yazılımda yapılan hatalar :

ERROR # 1 : Illegal character :

Yazılımda kullanılmaması gereken bir karakterin kullanıldığını gösterir.(kullanılan karakterler başlangıç bölümlerinde açıklanmıştı.)

ERROR #2 : Undefined symbol

Tanımlanmamış bir sembol kullanıldığında oluşur.

ERROR #3 :Dublicate symbol

Daha önce tanımlanmış bir sembol ikinci kez tekrar tanımlanmaya çalışılırsa oluşur.

ERROR #4 :Illagal digit for radix.

Sembollerin kullanılmaması gereken bir karakter veya rakamla başlaması sonucu meydana gelir.

ERROR #5 : Number too large.

Belirtilen sayı 16 bit'i ( 65535 ) geçtiğinde oluşur.

ERROR #6 : Missing END directive

Ana program sonunda " END " kullanılmadığı zaman oluşur.

ERROR #7 : Illegal opcode / directive after label

Etiketten sonra yanlış opcode veya directive kullanıldığında oluşur.

ERROR #9 : Text beyond END directive

Program sonunda kullanılan " END " den sonra program yazılımı devam ettiğinde oluşur.

ERROR #10 : Illegal or missing expression

Programda yanlış veya eksik ifade kullanılmış demektir.

ERROR #11 : Illegal or missing expression operator

Programda yanlış ve eksik bir matematik operatörü kullanılmış demektir.

ERROR #12 :Unbalanced parantheses

Eksik parantez kullanılmış demektir.

ERROR #13 :Illegal or missing expression volume

Yanlış veya eksik sembol veya nümerik değer kullanılmış.

ERROR #16 : Division by zero

Programda kullanılan ifadede, bir sayı sıfıra bölünmeye çalıştığında oluşur.

ERROR #17 : Illegal bit designator

Bir sembole uygun olmayan bit adresi atamaya çalışıldığında oluşur.

ERROR #18 : Target address exceeds relative adress range

SJMP , JZ, JNC gibi bağıl sıçrama komutlarının sıçranılacak adresin 127 byte'ı geçtiği durumlarda oluşur.

ERROR #20 :Illegal Operant

Kullanılan komut uygun değil.

ERROR #21 :Illegal indirect register

R0 ve R1 haricinde indirect (dolaylı) adresleme yapıldığında oluşur.

ERROR #22 :Missing operant delimiter

Virgülü eksik komut kullanılmış.

ERROR #24 :Attempting to EQUate a previosly SET Symbol

SET directive'i ile önceden tanımlanmış sembol'ün EQU ile tekrar tanımlanmak istendiğinde oluşur.

ERROR # 25 :Attempting to SET a previosly EQUated Symbol

EQU directive'i ile önceden tanımlanmış sembol'ün SET ile tekrar tanımlamak istendiğinde oluşur.

ERROR # 26 :Illegal SET / EQU expression

SET veya EQU directive'lerinden sonra uygun olmayan ifade kullanılmış.

ERROR # 27 :Illegal expression with forward referans

İfadede henüz tanımlanmamış bir sembol kullanılmış .

ERROR # 28 : Adress exceeds Adres range

Belirtilen adres 255'i aşmış

ERROR # 29 :Expecting an EOL or COMMEND

Derleyici bir satırdaki komutu derlerken derlenen komuttan sonra satır sona ermemiş ise oluşur.

ERROR # 32 :Byte definition exceeds 255

DB directivite ile kullanılan bir sabit 255'den büyükse oluşur.

ERROR # 33 : Premature end of string

ASCII harfleri ile meydana gelmiş bir dizi uygun kesme ile sonlandırılmamış demektir.

ERROR # 35 :Include file nesting exceeds 8

$INCLUDE ( file ) kontrolu ile programa dahil edilen program parçalarının sayısı 8 sayısını geçerse oluşur.

ERROR # 36 :Illegal or missing argument

Asembler kontrollerinde eksik veya yanlış argument kullanıldığında oluşur.

ERROR # 37 :Illegal control statement

Anlaşılamayan kontrol ifadesi kullanıldı. Eksik veya yanlış olabilir.

ERROR # 38 :Unable to open file

Derlenecek olan dosya açılamadı

ERROR # 40 :Program synchronization error

Programınızda ORG directivite'leri ile tanımladığınız program hafıza adresleri birbirisi içine geçerse ( yani karışırsa ) oluşur.

ERROR # 45 : Illegal or missing macro name

MACRO yazımı sırasında; uygun olmayan sembol veya 2. defa kullanılmış sembol kullanıldığında oluşur.

ERROR # 46 : Macro nesting too deep

Tanımlanan macrolar 9. seviyeye aştığında olur.

ERROR # 47 :Number of parameters doesn't match defination

Macro da kullanılan parametrelerin sayısı macro da kullanılan parametrelerin sayısına uygun olmadığında oluşur.

ERROR # 48 :Illegal parameter specification

Daha önce tanımlanmış sembollerin macro içerisinde de tanımlanmaya çalışıldığında oluşur.

ERROR # 49 :Too many paremeters

Macrolar da kullanılabilecek maximum paremetre sayısı 16 'dır.Bu sayı aşıldığında oluşur.

ERROR # 50 :Line exceeds 255 characters

Program yazımı esnasında kullanılan satır uzunluğu 255 karekteri aştığında oluşur.