• Forumzar.COM Türkçe içerikli genel forum sitesi ve paylaşım platformu olarak eğlenceli ve interaktif bir forum deneyim sunar.

    Foruma üye olmak için BURAYA TIKLAYINIZ

Mpasm'de Hatalar

SouLHuNTeR

Pendikspor.
Moderatör
Katılım
15 Nis 2023
Mesajlar
381
Puanları
28
Konum
İstanbul
Cinsiyet
Erkek
MPASM'DE HATALAR
MPASM Assembler Derlemede Hata Çıkarsa.

Eğer Compile işlemi sonunda errors ≠ 0 ise bu durumda biraz işiniz var demektir. (illaki çay içmek istiyorsanız huzursuz huzursuz içebilirsiniz şimdi bizim buradaki örneğimizde 1ledyak.asm dosyasında hata çıkmadı ama biz bir hata çıkaralım ve üzerinden hata nasıl bulunacak onu açıklayalım. Bir dosyayı assembly ederken rapor da aşağıdaki gibi error lar aldık diyelim.


Bu error'un karşısında yazan 4 sayısı sinirimizi bozabilir ama buna da şükretmeliyiz çünkü ya bide sadece hata var deyip geçseydi ne yapacaktıkonu düşünmek lazım. Şimdi derlenen 177 satır kodumuzun içinde 4 tane hata var diyor ne yapacağız? Tabii ki gidip ERR uzantılı dosyayı bulup içine bakacağız. Bu dosyayı da derlemeye çalıştığımız asm dosyasının bulunduğu dizinde bulabiliriz.
Burada örnek dosyamız 1ledyak.asm dosyası olduğu için hata dosyamız da bu dosyanın bulunduğu dizinde 1ledyak.err adında olacaktır)
gidip 1ledyak.err dosyamızı açıyoruz. (not defteri gibi bir metin editörü ile açabilirsiniz). İçinde hataların olduğu satırları arıyoruz. hataları bulduktan sonrada tekrar ASM dosyamızı açıp ilgili hataları birer birer gidereceğiz. eğer programınızda kod satırları çoksa biraz zor olabilir ama gene de çözüm var dosyada metin arama özelliğini kullanarak Error kelimesini arayarak bulabilirsiniz.
Şimdi dosyayı açalım ve hataları bulalım.


1) 6 ıncı satırda bi hata var hata olan kod EQUa =>halbuki bu değişken tanımlama için kullandığımız equ olmalıydı. Onu EQU yaparak düzeltiyoruz.

2) 12inci satırda bi hatamız var.

Illegal opcode (PORTB)=> yalnız bu PORTB nin yazılışında bir hata yok burada başka bir hata olmalı gidip 12 inci satıra bakalım.

ve buradan da görüyoruz ki 12 inci satır CLRF PORTB olması gerekirken CLRFg PORTB olarak girilmiş burada ERR dosyasında CLRFg ifadesini warning olarak bir üst satırda görüyoruz.

(niye CLRFg de warning verip de PORTB de Error verdi? CLRF yazdığımızda bu assembler kodu olur ama CLRFg yazdığınızda bu ifade satırın başında olduğu için bunu ETIKET olarak tanımaya çalışır.
34 ) bu iki hata da 28 ve 40 ıncı satırlarda. fakat esas hata burada değil. Error dosyasında açıklamaya bakarsak "Symbol not previously defined (SAYAC1)" yazıyor.

Burada MPASM diyor ki: "Sayac1 değişkenini daha önce tanımlamadınız. asm dosyamızda tanımlamaları yaptığımız bölüme bakıyoruz. Görüyoruz ki aslında bu hatayı az önce düzeltmişiz. çünkü az önce 6 ıncı satırda bulunan hata SAYAC1 değişkenini tanımlarken bulduğumuz hataydı ve düzeltmiştik.

Bir hata başka bir hatanın sebebi olabilir. yani derleme sonucunda eğer 20 hata uyarısı aldıysanız derleme yapılırken 20 defa sorunla karşılaşılmış anlamına gelir yoksa 20 tane hata var anlamına gelmez (ama olabilirde tabii).
hatta yukarıdaki örneğe benzer şekilde bir hata olup çok hata uyarısı alabilirsiniz örneğin bir değişkenin tanımlanmasında hata varsa ve bu değişkeni biz 20 yerde kullandıysak hatamız 1 yerde olmasına rağmen 20 tane hata uyarısı alırız.

Üstteki hatayı düzelttiğinizde unutup 2 dk sonra aşağılarda bulduğunuz hatadan dolayı tekrar aynı hatayı ararsanız bulamazsınız en güzeli birkaç düzeltme yaptığınızda bir karmaşa oluşursa MPASM la tekrar derleme yapın ve ERROR dosyasını tekrar açın. bu durumda en son hataları görmüş olacağınızdan sorun yaşamazsınız uzun uzun hata aramazsınız.
 

Genel Forum Sitesi

Forum Sitesi - Forumzar.COM

Forumzar.COM olarak, Türkçe forum sitesi denildiğinde akla gelen ilk adres olarak, geniş kapsamlı genel forum platformumuzda buluşuyoruz. Türkiye'nin en büyük Türkçe forum siteleri arasında yer almanın gururunu yaşıyoruz. Çeşitli konu başlıklarında aktif bir şekilde paylaşımların yapıldığı, her konuda interaktif ve bilgilendirici tartışmalara katılmak için bizi takip edin! ve bir dakikanızı ayırarak forum sitemize üye olun!

Forum Siteleri

Bilgi paylaştıkça çoğalır sloganı ile ilerleyen forum sitesi platformumuza, siz de üye olarak forum sitemizde açılan konulara katılabilir ve ilgi alanınıza uygun konular açarak siz de paylaşımda bulunabilirsiniz.