Makine dili, bir bilgisayarın anlayabileceği ikili sayılardan veya bitlerden oluşan düşük seviyeli bir dildir. Makine kodu veya nesne kodu olarak da bilinir ve anlaşılması son derece zordur. Bilgisayarın anladığı tek dil makine dilidir. Swift ve C++ gibi tüm programlar ve programlama dilleri, bilgisayarda çalıştırılmadan önce makine dilinde programlar üretir veya çalıştırır. Belirli bir görev, en küçük süreç bile yürütüldüğünde, makine dili sistem işlemcisine taşınır. Bilgisayarlar dijital cihazlar olduğundan yalnızca ikili verileri anlayabilirler.
Bilgisayarda videolar, programlar, resimler gibi tüm veriler ikili olarak temsil edilir. CPU bu makine kodunu veya ikili verileri giriş olarak işler. Daha sonra bir uygulama veya işletim sistemi, ortaya çıkan çıktıyı CPU'dan alır ve görsel olarak görüntüler. Örneğin ASCII kodu 01000001, makine dilinde 'A' harfini temsil ediyor ancak ekranda 'A' olarak görünüyor.
Farklı işlemci mimarileri tarafından farklı makine kodları kullanılır; ancak makine kodu 1'leri ve 0'ları içerir. Örneğin, CISC mimarisi içeren Intel x86 işlemciyle karşılaştırıldığında, PowerPC işlemcisi, RISC mimarisi içeren farklı koda ihtiyaç duyar. Doğru işlemci mimarisi için, bir programın doğru şekilde çalıştırılması için bir derleyicinin üst düzey kaynak kodunu derlemesi gerekir.
Bir program veya eylem için tam makine dili, derleyicinin bir eylemi makine diline nasıl yazdığını açıklayan işletim sistemine göre farklı olabilir. Benzer şekilde, bir fotoğrafta her pikselin rengini belirleyen on binlerce ikili veri bulunur.
Bilgisayar programları bir veya daha fazla programlama dilinde (örneğin Java, C++ veya Visual Basic) oluşturulur. Bilgisayar programlarını oluşturmak için kullanılan programlama dilleri bilgisayar tarafından doğrudan anlaşılamayacağından, program kodunun bilgisayarın anlayabileceği şekilde derlenmesi gerekir. Programın kodu derlendiğinde şuna dönüştürülür:
01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100
Makine dili, bilgisayarın anlayabilmesi için.
Makine dili örnekleri
Metin ' Selam Dünya ' makine dilinde yazılır:
'A' harfinin ekranda 1000 kez görüntülenmesini sağlayacak başka bir makine dili örneği aşağıda verilmiştir.
169 1 160 0 153 0 128 153 0 129 153 130 153 0 131 200 208 241 96
Makine kodu yürütme
Her işlemci ailesi, özel olarak programlanmış bir dizi talimatı takip eder ve bu talimatlar makine koduyla düzenlenir. Tüm küçük eyleme geçirilebilir bileşenler, makinenin genel işleyişini oluşturan bileşenler, temel birimlerin özel bir düzenlemesiyle belirlenir. Temel bilgi birimlerinin tümü, bir veya iki '1' veya '0' değerine sahip ikili olarak temsil edilir. Her işlemci sınıfı, kendine özgü talimat setine uyan yapısal bir konfigürasyon gerektirdiğinden, tüm makine kodu konfigürasyonlarının temel talimat setleri, benzer şekilde eşleşen işlemci sınıflarına bağlanır.
Makine Dilinin Kullanım Alanları
Makine dilinin yaygın kullanımları aşağıda tartışılmaktadır:
- Makine dili, makinelerin anladığı ancak insanların bir çevirici kullanarak çözebildiği düşük seviyeli bir dildir.
- Bir derleyici, makine dilini insanların anlayabileceği başka bir kod veya dile dönüştürdüğü için insanlar ve bilgisayarlar arasında önemli bir rol oynar.
- Assembly dili, makine dilinin bir kopyası olduğu için onu anlamaya adanmıştır.
Makine Dili ile Montaj Dili Arasındaki Fark
Makine Dili ile Montaj Dili arasında çeşitli farklar vardır. Aşağıda aralarındaki tüm farkları içeren bir tablo verilmiştir.
Makine dili | Montaj Dili |
---|---|
Makine dili, yalnızca makineler tarafından okunabilen ikili sayılardan veya bitlerden oluşan düşük seviyeli bir programlama dilidir. Talimatların doğrudan CPU tarafından yürütüldüğü makine kodu veya nesne kodu olarak da bilinir. | Assembly dili, bilgisayarlar tarafından anlaşılamayan, yalnızca insanlara yönelik bir dildir. Sonuç olarak, yüksek seviyeli programlama dilleri ile makine dilleri arasında bir bağlantı görevi görür ve talimatları makine veya nesne koduna dönüştürmek için bir montajcının kullanılmasını gerektirir. |
Makine dili, yalnızca bilgisayarlar tarafından anlaşılabilen ve insanlar tarafından deşifre edilemeyen ikili rakamlar (0'lar ve 1'ler), onaltılık ve sekizlik ondalık sayılardan oluşur. | Mov, Add, Sub, End ve diğerleri gibi anımsatıcılar insanların anlayabileceği, kullanabileceği ve uygulayabileceği montaj dilini oluşturur. |
Makine dilinde hata düzeltme ve değişiklik yapılamaz ve buna göre makine dillerinin özellikleri çeşitlenir. | Assembly dili, geleneksel komut setlerinin yanı sıra hataları düzeltme ve programları değiştirme yeteneğine de sahiptir. |
Makine dilleri platforma bağımlıdır ve insanlar tarafından anlaşılması oldukça zordur. | Assembly dillerinin sözdizimleri İngilizce diline benzer; bu nedenle bir insan tarafından anlaşılması kolaydır. |
Makine dili ezberlenmesi zor olduğundan ve yalnızca makine kodu görevi gördüğünden öğrenilmesi mümkün değildir. | Assembly dilinin ezberlenmesi kolaydır ve mikroişlemci tabanlı uygulamalar/cihazlar ve gerçek zamanlı sistemler için kullanılır. |
Makine dilinde, tüm veriler ikili formatta mevcuttur, bu da yürütmeyi hızlandırır. | Makine diliyle karşılaştırıldığında montaj dilinin yürütme hızı yavaştır. |
Bit dizileri Makine dili tarafından komut vermek için kullanılır. Sıfır, kapalı veya yanlış durumu temsil ederken, biri açık veya doğru durumu temsil eder. Üst düzey programlama dilinin makine diline dönüştürülmesi CPU'ya bağlıdır. | Montaj dili ham bit dizileri kullanmak yerine 'anımsatıcı' adları ve sembolleri kullanır; bu nedenle kullanıcıların montaj diliyle işlem kodlarını hatırlamasına gerek yoktur. Montaj dillerinde insanlar kodu makine koduyla eşleştirebilir ve kodlar biraz daha okunabilirdir |
Birinci nesil programlama dilleri, tercümana ihtiyaç duymayan Makine dilleridir. | İkinci nesil programlama dilleri, anımsatıcıları makine tarafından anlaşılabilecek biçime dönüştürmek için çevirici olarak çeviriciyi kullanan montaj dilleridir. |
Makine dili donanıma bağlıdır ve değişikliğe izin vermez. | Assembly dili taşınabilir değildir, makineye bağımlıdır ve kolayca değiştirilebilir. |
Makine dilinin sözdiziminde hata olasılığı daha fazladır. | Makine diliyle karşılaştırıldığında, montaj dilinde sözdizimi hatası olasılığı daha azdır. |