Makine dili nasıl yapıldı?

Makine dili 1 ve 0 olarak basitleştirilemez.

Yanlış. Makine dilleri, 0 ve 1'e basitleştirilebildiği için makine dilidir zaten.

Bir kere şu var: İşlemcinin anladığı iki şey vardır: 0 ve 1. 0 ise elektrik yoktur, 1 ise vardır. Senin yaptığın her şey, yazdığın her şey, çeşitli ara çeviriciler sayesinde 0 ve 1'lere dönüştürülür.

Assembly ise kolaylıkla binary yani ikili sisteme çevrilebilir. Zaten Low Level bir dil olmasının sebebi de bu.
 
Makine dili yapılmadı.
Makine dili 1 ve 0'lardan oluşur ve bu da işlemcinin içerisindeki transistörlerin açık veya kapalı olması ile ilgilidir.
"Makine dilini bilgisayar nasıl anlıyor?" diye sorarsanız da bilgisayarın makine dilini anladığı pek söylenemez. Bir mekanizmanın içerisindeki bir dişli yaptığı işin ne kadar farkındaysa bilgisayar da o kadar farkında.

Yanlışım varsa düzeltin @SideWinder hocam.
 
Program dediğin şey bilgisayara verdiğin talimatlardan öte bir şey değildir. Program, işletim sistemi tarafından bilgisayarın RAM´ine yüklenir ve işlemci tarafından hesaplatılır. İşlenen sonuç kullanıcıya geri döndürülür. Bütün programlar bu şekilde çalışır.

Bilgisayar, insanların yazdığı C, C++, C#, Java, Python gibi dilleri anlamaz. Bu dillerin derlenmesi ya da yorumlanması gerekir. Bu sayede program bilgisayarın anladığı makine koduna dönüştürülür. Makine kodu denilen şey de aslında 1´lerden ve 0´lardan oluşan sinyallerden öte bir şey değildir.

Her program her işlemcide çalışıyormuş gibi görünse de aslında farklı işlemcilerin farklı instruction setleri vardır. İşlemci üreticisi şu, şu, şu kurallar dahilinde şu, şu, şu komutları verirsen işlemciden istediğin sonucu ve performansı alırsın diyorlar. Buna göre yazılan derleyiciler de bir programlama dilini derlerken üzerinde çalıştığı sistemin işlemcisine uygun olacak bir şekilde derleme gerçekleştirirler.
 
Program dediğin şey bilgisayara verdiğin talimatlardan öte bir şey değildir. Program, işletim sistemi tarafından bilgisayarın ram´ine yüklenir ve işlemci tarafından hesaplatılır. İşlenen sonuç kullanıcıya geri döndürülür. Bütün programlar bu şekilde çalışır.

Bilgisayar, insanların yazdığı C, C++, C#, Java, Python gibi dilleri anlamaz. Bu dillerin derlenmesi ya da yorumlanması gerekir. Bu sayede program bilgisayarın anladığı makine koduna dönüştürülür. Makine kodu denilen şey de aslında 1´lerden ve 0´lardan oluşan sinyallerden öte bir şey değildir.

Her program her işlemcide çalışıyormuş gibi görünse de aslında farklı işlemcilerin farklı instruction setleri vardır. İşlemci üreticisi şu, şu, şu kurallar dahilinde şu, şu, şu komutları verirsen işlemciden istediğin sonucu ve performansı alırsın diyorlar. Buna göre yazılan derleyiciler de bir programlama dilini derlerken üzerinde çalıştığı sistemin işlemcisine uygun olacak bir şekilde derleme gerçekleştirirler.

Gayet güzel açıklamışsın fakat birkaç yanlışı düzeltmek istiyorum.

İlk olarak bilgisayarda hesaplanan her işlemin ekrana basılma zorunluluğu yoktur, çünkü; ekrana veri basma işlemi de prosedür olarak çağırıldığı için bu fazladan işlemci çevrimi demektir ayrıca güvenlik sorunları oluşturabilir, hem de son kullanıcı bilgisayarları için estetik durmaz.

İkinci olarak ise makine kodu denilen şey onaltılık düzende ascii olarak şifrelenmiş Opcodeler'dir, dolayısıyla işlemciye komut ascii karakteri olarak ulaşır ve bu ascii karakter komut çözücü (intruction decoder) ve mikro kod belleği (microcode ROM) vasıtası ile çözüldükten sonra üretilen sinyal kontrol birimine iletilir ve buradan da bakış tablosu (lookup table/lut) vasıtasıyla Sinyal'in kendisine ihtiyaç duyulan yere yönlendirilir ve çevrim tamamlanmış olur, böyle yapılmasının sebebi işlemci'nin yeni komutlara ihtiyaç duymayacağı; yani komutlar işlemcinin içinde zaten halihazır durumda var olduğu için ve veriyi daha kolay işleyebilmek ve işlenen verinin daha kolay saklanabilmesi/kategorizesi/bulunabilmesi içindir.
 
İkinci olarak ise makine kodu denilen şey onaltılık düzende ascii olarak şifrelenmiş Opcodeler'dir, dolayısıyla işlemciye komut ascii karakteri olarak ulaşır ve bu ascii karakter komut çözücü (intruction decoder) ve mikro kod belleği (microcode ROM) vasıtası ile çözüldükten sonra üretilen sinyal kontrol birimine iletilir ve buradan da bakış tablosu (lookup table/lut) vasıtasıyla Sinyal'in kendisine ihtiyaç duyulan yere yönlendirilir ve çevrim tamamlanmış olur, böyle yapılmasının sebebi işlemci'nin yeni komutlara ihtiyaç duymayacağı; yani komutlar işlemcinin içinde zaten halihazır durumda var olduğu için ve veriyi daha kolay işleyebilmek ve işlenen verinin daha kolay saklanabilmesi/kategorizesi/bulunabilmesi içindir.
Yanlış değil ancak ekleme:
"Micro code CISC tabanlı mimarilerde bulunur. RISC tabanlı işlemci mimarileri micro code'a ihtiyaç duymazlar."
 
Yanlış değil ancak ekleme:
"Micro code CISC tabanlı mimarilerde bulunur. RISC tabanlı işlemci mimarileri micro code'a ihtiyaç duymazlar."
Evet risc konsepti zaten kod çözücü'ye ihtiyaç duymaz, bu nedenle mikro koda da ihtiyaç duymazlar (bazı özelleştirilmiş risc işlemciler dışında, ama tabi onlar şuan konu dışı.)
 

Yeni konular

Geri
Yukarı