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.

Benzer Yazılar

Yorumlar

Yorum Yazın

Su elementleri kullanabilirsiniz : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Bu siteye yorum yazmış biri olarak daha sonra gelipte birgün, "yazılarımı silin" gibi konularda haklı olduğunuzu düşünüyorsanız çok fazla Amerikan filmi izlemişsiniz demektir :)

Arama
Beni Yukarı Çıkar