Assembly Öğreniyorum
Evet assembly öğrenmeye başladım 🙂 Öncelikle assembly’nin wikipediadan aldığım tanımını yazmak istiyorum. Assembly dili karmaşık programlar yazmak için kullanılan düşük seviyeli bir programlama dilidir. Assembly insanlar tarafından anlaşılması zor olan makina dilinin sayısal ifadelerini, insanlar tarafından anlaşılarak programlanması daha kolay olan alfabetik ifadelerle değiştirerek düşük seviyede programlama için bir ortam oluşturur. Assembly kullanmanın amacı, ilk bilgisayarlarda yazılan programların daha az hata içermesi ve daha az zaman almasını sağlamaktır.
Assembly dilini makina koduna çeviren programlara assembler denir. Bir assembler’ı derleyiciden ayıran en önemli özellik bire bir dönüşüm yapmasıdır. Derleyiciler kodun tamamını okurlar ve kodun tamamını anlamlı bir programa dönüştürürler. Kodun her satırını tek tek okuyan ve uygulayan programlara ise yorumlayıcı denir.
Bugün ise mikroişlemci dersimizde ilk basit programımızı yazdık. Assembly bir hayli zor görünüyor fakat sıkıcı değil 🙂 İlk assembly programımız (7+5)/4 = 3 işlemini yapan 6802 assembler programını yazmaktı. İlk soruyu hocamız çözdü :
CLR A
CLR B
Lda A #$07
Lda B #$05
ABA
ASR A
ASR A
SWI
Tabii bunun 2 satır daha kısa 2inci bir yolu daha var :
CLR A
Lda A #$07
Add A #$05
ASR A
ASR A
SWI
Bu programda # ile anında adresleme yaptık çünkü akümülatöre yüklediğimiz sayı sabit. Hocamız 2inci bir soru yazdı ve 10 dk süre verdi. Bizden istediği ise ((9*2)+2)/2=OA işemini yapan 6802 assembler programıydı ve 10 dakika süre verdi. Soruyu 2 dakikada çözdük hemen, çözümüm ;
CLR A
CLR B
Lda A #$09
Lda B #$02
ASL A
ABA
ASR A
SWI
2 akümülatörü kullanarak yaptığım çözüm 1 akümülatör kullanarak çözülebiliyor;
CLR A
Lda A #$09
ASL A
Add A #$02
ASR A
SWI
Bu programların OP-Code’unu çıkartarak dersimizi bitirdik. Haftaya ise dallanmış programlar yazıcaz. Hoca atlayan zıplayan programları kötü bir gülümseyle çok da kolay olmadığını, 3-5-7 gibi tek sayılara bölme işlemi için ek programlar yazıcağımızı söyledi. Haftaya biraz aksiyon var kısacası 🙂 Fırsatım oldukça derste yaptıklarımızı ve notlarımı blogumda paylaşacağım.
11 yorum
Hayırlı olsun umarım en iyi şekilde öğrenirsiniz
işinize yarayabilecek tükçe dökümanlar faydalı olması dileği ile http://rapidshare.com/files/73202007/microcontroller.rar.html
iyi çalışmalar
Çok teşekkür ederim 🙂
Senlen bağlantıya nasıl geçicez biz 🙂
Yakında siteme bir iletişim formu ekleyeceğim. Oradan ulaşabilirsiniz. 🙂
Teşekkürler, 6802 mikroişlemcisi ile alakalı örnek internette ben bualamadım dogrusu buranın haricinde.. Diger siteler hep başka tür işlemciler ile alakalı örnekler gosteriyordu..
“Anında” “Doğrudan” “indisl” “genişletilmiş” “Anlaşılır” gibi adresleme modları hangi durumlarda kullanılıyor..Bunlar hakkında biliyorsan biraz bilg verebilirmisin.
Birkaç yazı dizisinden sonra o konuya da geleceğim. Elimden geldiğince bildiklerimi paylaşırım 🙂
apple işlemci konusunda kendinizi ilerletmişsiniz tebrikler
abi ben bilişim okuyorum asembley dilini ogrenmek istiyorum bunun için bir program varmı.