MPASM Assembler Programı Derleyici Kullanımı Hakkında Programı ve Anlatımı

MPASM Assembler Kullanımı

MPASM Assembler Derleyici Kullanımı

bu sayfayı koymaya gerek duymamıştım ama gelen sorular istekler doğrultusunda bunun da gerekli olduğunu düşündüm. öncelikle elimizde MPASM derleyici olmalı, bunu da Microchip firmasının internet sitesinden ücretsiz dağıttığı MPLAB programının içinde bulabilirsiniz. eğer yoksa yüklemek için tıklayın. MPLAB710.zip (29,7 MB)

gelen zip dosyasını açın ve içindeki Setup.exe dosyasını çalıştırarak yükleyin. yükleme işlemi bittikten sonra, başlat menüsünden MPASMWIN ‘e tıklayarak MPASM programını açın

 
karşınıza aşağıdaki pencere gelecek

 

bu pencerede 1 nolu alandan programını ahazırladığınız hedef PIC’i seçin. 2 nolu alan isederleme işlemi sonunda üretilecek dosyaları belirler default olarak Error file ve List File seçili. bu durumda derleme işlemi sonunda hex dosyanın haricinde err uzantılı bi dosya ve lst uzantılı bi dosya üretilecektir. bu ayarları yaptıktan sonra Browse butonuna tıklayın

 

asm uzantılı dosyayı açın. ve MPASM penceresinde Assemble butonuna tıklayın ve bekleyin. (çay sigara içecek kadar uzun sürmüyor, bi yere gitmeyin, hem ödül için daha erken değilmi) şimdi aşağıdaki gibi bi pencere gelecek.

 

evet bu kadar. eğer bu rapor penceresinde Errors:0 yazıyosa tamamdır. artık rahatlayabilirsiniz.

yok eğer Errors ≠ 0 ise bu durumda biraz işiniz var demektir.

MPASM da Hata Çıkarsa

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 istiyosanız huzursuz huzursuz içebilirsiniz 🙂 şimdi bizim burdaki örneğimizde 1ledyak.asm dosyaında hata çıkmadı ama biz bi hata çıkaralım ve üzerinden hata nasıl bulunacak onu açıklayalım. bi dosyayı assembly ederken rapor da aşağıdaki gibi error lar aldık diyelim.

mpasm compile error

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 napacaktık, onu düşünmek lazım.

şimdi derlenen 177 satır kodumuzun içinde 4 tane hata var diyo, napacaz? tabiiki 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).

ve iç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 genede çözüm var, dosyada metin arama özelliğini kullanarak Error kelimesini arayarak bulabilirsiniz.

şimdi dosyayı açalım ve hataları bulalım.

error_Dosyasi

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ı. gidip onu EQU yaparak düzeltiyoruz.

2) 12inci satırda bi hatamız var.
Illegal opcode (PORTB)
=> yalnız bu PORTB nin yazılışında bi hata yok, burda başka bi hata olmalı, gidip 12 inci satıra bakalım.

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

(niye CLRFg de warning verip de PORTB de Error verdi?—– cevap: eeeee üüüü kem küm… böyle zor şeyler sormayın yaaa, daha oraları öğrenmedik biz)

neyse, burdaki olay ise şu: 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. (sanırım oraya gelmişiz:))

3,4 ) bu iki hata da 28 ve 40 ıncı satırlarda. fakat esas hata burda değil. Error dosyasında açıklamaya bakarsak "Symbol not previously defined (SAYAC1)" yazıyor.

Burda MPASM diyo ki: "Sayac1 değişkenini daha önce tanımlamadınız. Annem bana dibi görünmeyen suya girme yoksa boğulursun dedi bilmediğim bişeyi kullanamam." O zaman öğretecez demektir, Gidip asm dosyamızda tanımlamaları yaptığımız bölüme bakıyoruz.

ve 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.

Not: Bu hataya düşmeyin.

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 bi 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.

Kaynak: http://www.elektromania.net/pic/?id=13

 


Posted in Uncategorized.

Bir cevap yazın