EYLÜL_PC_SHOP
Would you like to react to this message? Create an account in a few clicks or log in to continue.

EYLÜL_PC_SHOP

EYLÜL_PC_SHOP
 
AnasayfaAnasayfa  Latest imagesLatest images  AramaArama  Kayıt OlKayıt Ol  Giriş yapGiriş yap  

 

 Assembly dili ve mikroişlemciler

Aşağa gitmek 
YazarMesaj
Admin
Admin



Mesaj Sayısı : 99
Kayıt tarihi : 29/12/08

Assembly dili ve mikroişlemciler Empty
MesajKonu: Assembly dili ve mikroişlemciler   Assembly dili ve mikroişlemciler EmptyPerş. Ocak 01, 2009 8:10 pm

Assembly dili ve mikroişlemciler

Elinize ilginç bulduğunuz bir tükenmez kalem geçtiğinde, en ufak parçalarına ayırıp inceleme isteği duyuyorsanız, bilgisayarınızın içini en az 15 günde bir açıyorsanız, sinemada "Acaba bu sahneyi nasıl çekmişler?" diyorsanız; diğer programlama dillerinin sizi tatmin etmeyeceği çok açıktır. Assembly dili, bilgisayarınızın en ücra köşelerine, karanlık dehlizlerine, diğer programlama dillerinin yapamayacağı bir ustalıkla ulaşabilmenize imkan tanıyan bir programlama dilidir. Derleyiciler (yazdığınız programı çalıştırılabilir dosya haline getiren programlar), kullandığınız dili öncelikle assembly diline çevirir, daha sonra da makine diline çevirirler. Bu nedenle assembly ile yazdığınız programlar diğer dillerden daha hızlıdır ve muhtemelen de çok daha az yer kaplar.

Assembly konusunda otoriteler genelde programlamaya yeni başlamış kişiler için, ilk durağın burası olmaması gerektiğini söylerler. Chuck SPHAR’ın Microsoft Press’ten çıkardığı "LEARN MICROSOFT VISUAL C++ 6.0" adlı kitabında; "Programlamaya yeni başlıyorsanız size C yerine BASIC öneririm" ve "Bu sular, yüzme bilmeyenler için çok derin" diyor. Bu görüşe kısmen katılıyorum, fakat eğer gerçekten istiyorsanız, assembly’ı pek tabi öğrenebilirsiniz.

Başlamak, başarmanın yarısıdır...
Üzülerek söylemek zorundayım ki diğer programlama dillerine başlarken ilk uygulama olarak gösterilen; ekrana "Merhaba Dünya..!" yazdırma uygulamasına hemen geçemeyeceğiz. Öncelikle Mikroişlemciler ve bilgisayar sistemleri hakkında bilgi edinmek daha yerinde bir karar olacaktır.

Bilgisayarın hikayesine başlarken...
PC’lerin hikayesine başlarken nereden başlayacağım konusunda ciddi tereddütlerim oldu. Hatta bir ara abaküsten mi başlasam diye düşündüm. Ama sonunda milattan sonrayı anlatmanın daha mantıklı olacağına karar verdim. Bilgisayarın aşk, nefret ve entrika dolu hayat hikayesine Charles Babbage’ın "Fark Aygıtı" adını verdiği otomatik hesap makinesinden başlayalım; Babbage, özellikle matematiksel tablolar hazırlanmasını gerektiren bir çok uzun işlemin, düzenli olarak yenilenen rutin işlemleri kapsadığını fark etmiş. Bunun üzerine mekanik bir alet yapımına girişmiş. İngiliz hükümetinden de destek alınca 1823’de buharla çalışan bir modelini yapmayı başarmış. Daha sonra da George BOOLE Mathematical Analysis of Logic (Mantığın matematiksel çözümlemesi) adlı eserinde bugünkü bilgisayarların temelini oluşturan VE, VEYA, DEĞİL gibi önermeleri matematiğe kazandırmıştır.

Biraz cebir....
Boolean cebiri yada matematiği sayısal elektroniğin temelini oluşturur. Bu nedenle Assembly öğreniminde bir ilk durak seçecek olursak, bu tartışmasız Boolean cebiri olmalıdır. Aristo’ya göre iyi ve kötünün dereceleri yoktur. Felsefecilerden özür dileyerek devam ediyorum. Doğadaki renkler, ya siyah ya da beyazdır yani trafikte park cezası almışsanız, bu sizi idama kadar götürebilir demektir. Smile Bu siyah-beyaz dünyayı rakamlarla ifade edersek siyah 0, beyaz 1 dersek bu olayın matematiksel çözümlemesini yapmış oluruz. Bilgisayarların temel çalışma mantığı da budur. Her matematiksel ifadenin bir elektronik anlatımı olabilir. Mesela integro-diferansiyel denklemleri kondansatörlerin dolup boşalması ile açıklayabiliriz. Aynı şekilde (bu arada fazla uzattığımın farkındayım) 1 ve 0’ları: "gerilim var" veya "gerilim yok" diye ifade edebiliriz. Mesela bir kablodan akım geçiyorsa, buna 1 veya lojik 1, akım geçmiyorsa buna 0 veya lojik 0 diyebiliriz.

Esasen bu 1 ve 0’lar, ikilik sayı sisteminden başka bir şey değildir. İnsanlar muhtemelen 10 parmağı olduğundan 10’luk sayı sistemini tercih etmişlerdir. Fakat bilgisayarın 10’luk sayılarla işlem yapması bir hayli zor ve masraflı olacağından 2’lik sayı sistemini kullanmak zorunda kalınmıştır. Bildiğim kadarıyla tarihte 10’luk sayı sistemini kullanan bilgisayarlar yapılmış ama optimal bir çözüm olmadığı anlaşılmıştır.

İkilik sayılar, sayısal sistemlerin temelini oluşturur. Önceleri analog bilgisayarlar kullanılmış olsa bile sayısal sistemler doğruluk bakımından analog sistemlerden her zaman daha fazla güvenilirdir. Analog sistemler; mesela kullandığımız kasetler ve eski plaklar gibi medyalar analog kayıt sistemleridir. Disketler, CD’ler ve DVD’ler ise dijital kayıt ortamlarıdır. Sayısal medyalara 1 ve 0’lar işlenir. Analog medyalarda ise sinyal benzetimi yapılır. Daha basite indirgersek, "Önümüzdeki Yol-Bill GATES" kitabından bir örneği kullanmam yerinde olacaktır. Evinizdeki 80 W’lık lambayı yakmak için ayarlı bir anahtarınızın (Reosta) olduğunu varsayalım, anahtarı saat yönünde döndürdüğünüzde lambanın şiddeti artar. Saat yönünün tersine doğru çevirdiğinizde ise lambanın şiddeti düşer. Reostayı saat yönünde sonuna kadar döndürdüğünüzde, lamba 80 W’a eşdeğer ışık verir ve ters yönde döndürdüğünüzde ise lamba söner. Loş bir ortam oluşturmak istiyorsanız, lambayı reostanın ortalarında bir yere ayarlamanız gerekir. Ertesi gün tekrar aynı ortamı sağlamak istediğinizde reostayı dün ayarladığınız konuma getirmeye çalışırsınız ama aynı ayarı asla tutturamazsınız yada tutturmanız son derece zordur. Reostanın yerini dünkü yerine benzetmeye çalışmanız analog kayıt sistemlerinin çalışmasına bir örnektir.
Peki 8 adet 10 W’lık lambanız olduğunuzu farzedelim, dün 4 tanesini yaktınız ve 40 W’lık lambaya eşdeğer bir ışık elde ettiniz. Bugün de 4 tanesini yakarsınız dünkü loşluğun aynısını elde edersiniz. İşte bu da sayısal kaydetmeye bir örnektir. Peki lamba sayınızı 16’ya çıkarırsanız ve 7 tanesini yakarsanız; 5 x 7 = 35 W’lık bir parlaklık elde edersiniz. Lamba sayısını arttırmanız, sayısal örnekleme miktarını arttıracağından daha hassas ayar yapabilir ve eski ayarınızın aynısı olduğuna emin olarak her gün aynısını kullanabilirsiniz. Belki odanızın ışık sisteminde bu kadar hassas davranmayabilirsiniz ama bir e-posta gönderiyorsanız karşı tarafa eksiksiz ulaşmasını istersiniz.

VE (AND), VEYA (OR), DEĞİL (NOT), ÖZEL VEYA (XOR) gibi mantıksal işlemlerin matematiksel ifadesi olan Boolean cebirine geri dönerek bir örnek üzerinde açıklayalım: Siz bilgisayarı açarken öncelikle fişi prize takıp daha sonra da bilgisayarın güç düğmesine basarsınız. Bu iki şart gerçekleştiğinde bilgisayarınız açılır. Bu işlemi mantıksal "VE" işlemi olarak düşünebiliriz. Yani, bilgisayarınız fişe takılmışsa "VE" güç düğmesine basılmışsa, bilgisayarınız açılır. Fiş, prize takılı değilken 0, takılı iken 1 durumu, aynı şekilde güç düğmesine basılmamışsa 0, basılmışsa 1 durumu diyelim. Bilgisayarınız, fişe takılmışsa "VE" güç düğmesine basılmışsa bilgisayarın açılması için yeter şart sağlanmış olup, sonuç 1 olur yani bilgisayarınız açılır. Aksi durumlarda 0 olmalıdır. Bir başka deyişle bilgisayarınız diğer şartlarda açılmaz. İşte bu George Boole’un yaptığı mantıksal "VE" işlemidir.
Sayfa başına dön Aşağa gitmek
http://fetle.yetkinforum.com
 
Assembly dili ve mikroişlemciler
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Assembly dili ve mikroişlemciler
» Assembly Programlama Dili
» Assembly Nedir?
» Assembly bize ne sağlar
» Neden assembly kullanmalıyız ?

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
EYLÜL_PC_SHOP :: Programlama :: Assembly-
Buraya geçin: