Saturday, June 9, 2012

X8086 Microişlemcilerde Programlama - [Ders 1]

Üniversite hayatım boyunca birçok ders aldım. Bunlar arasında en sevdiklerimden birisi "CE 302" kodlu "Mikroişlemciler" adlı dersti. Dersin temel amacı, öğrencilere mikrobilgisayarları ve mikroişlemcileri tanıtmanın yanı sıra bu yapıların Assembly programlama dili ile programlanmasını öğretmekti. Bu uzun zamandır yazmak istediğim bir konuydu. Bu yazı Debug Kullanımı ve Debug üzerinde yapabileceğimiz kimi işlemler üzerine olmakla beraber kullandığım sistem Windows XP'dir. Daha fazla uzatmadan Debug kullanımına geçmek istiyorum.

DEBUG KULLANIMI

Debug, çoğunlukla X8086-X8088 mikroişlemcisi programlamada, simulasyon olarak kullanılan bir arayüz programıdır. Debug'ı çalıştırmak için sırasıyla şu işlemleri uygulamalısınız. Başlat > Çalıştır'a tıklayıp, çıkan pencerede "" bölümüne "cmd" yazıp "Tamam"a tıklayın, karşımıza çıkan dos ekranına "debug" yazıp enter tuşuna basıyoruz. Bu sayede simulasyon ortamına geçiş yapmış olduk. Enter tuşuna bastığımızda, bir alt satıra geçeceğiz. Debug, giriş yapmamızı söyleyen "-" ile bizi karşılayacak. Aşağıdaki resimde buraya kadar anlattıklarım gösteriliyor.


En önemli Debug komutlarından birisi "?" komutudur. Ekrana "?" yazıp enter tuşuna bastığımızda karşımıza aşağıdaki gibi bir resim çıkmaktadır.


Yukarıdaki resimde, Debug üzerinde kullanabileceğimiz komutların listesinin sıralanmış halini görmektesiniz. Aşağıda ise şu adresten aldığım komutların listesi ve ne yaptıklarının İngilizce açıklaması mevcut.


Mesela yukarıdaki komutlardan örnek olarak "h" komutunu ele alalım. Command -> h, Description -> Performs hexadecimal arithmetic yani bu komut girilen 2 hexadecimal değerler üzerinde aritmetik işlem yapmaya yarıyor. Komut satırına "h 8 3" yazıp enter tuşuna bastığımda, Debug bana cevap olarak "000B 0005" değerlerini döndürüyor. "000B" değeri 8 + 3 = B (Hexadecimal toplam), "0005" değeri ise 8 - 3 = 5 (Hexadecimal çıkarma) işlemlerine tekabül ediyor.


Açıklayacağım bir başka komut ise "r" komutu. "Command -> r, Description -> Displays or alters the contents of one or more registers", bu komut eğer sadece "r" yazıp enter tuşuna basarsak o an sistemdeki "Register"ların(Kayıtçı)(Kayıtçılar, mikroişlemci programlamada kullanılan en önemli yapılardır. Sadece bu yapılar üzerine ileride daha detaylı bir yazı yazacağım), flaglerin ve daha birçok şeyin içeriğini göstermektedir.


Ancak "r" komutunu, yanında bir başka register ile kullanırsak o zaman, o register'ın içeriğini değiştirir.


Sizde, yukarıda yaptığım gibi komutların ne işe yaradığını tek tek deneyip sonuçlarını görebilirsiniz. Bugünkü dersimiz bu kadar daha Debug ile yapacaklarımız bitmedi. Bu yaptıklarımız Debug üzerinde yapılacak en basit işlemler. İleriki derslerde bu komutları kullanıp daha kompleks işler yapacağız. Bu yüzden, bu komutlara aşina olmak için hepsini deneyip bol bol pratik yapabilirsiniz. Herkese iyi günler.

3 comments:

  1. Taner bey merhabalar.
    Debug'u kullanarak paralel porttan veri göndermek istiyorum. Yukarıda söylediğiniz işlemleri gerçekleştirdim ancak açılan dos ekranına debug yazdığımda "debug iç ya da dış komut, çalıştırılabilir program ya da toplu iş dosyası olarak tanınmıyor" diye hata almaktayım. Ne yapmamı ömerirsiniz

    ReplyDelete
    Replies
    1. Merhaba Bilal bey, belki kullandığınız işletim sistemi ile alakalı olabilir. Sanki Windows XP'den sonraki versiyonlar için debug komutunu dos ekranında çalıştırmak için ayrıca bir program yüklemeliyiz diye hatırlıyorum. Ama tam emin değilim.

      Delete
    2. Windows 7 - 64-Bit işletim sistemleri ile ilgili şu video sizin için bilgilendirici olabilir.

      link -> http://www.youtube.com/watch?v=wSvE3Uo6_DU

      Delete