Makine dili nasıl yapıldı?

1949 yılında Princeton Üniversitesi matematikçilerinden von Neuman tarafından EDVAC (Electronic Discrete Variable Computer) yaratıldı. Gerçek anlamda ilk bilgisayar bu oldu; çünkü program ve veri aynı anda bellekte saklanabiliyor, dolayısıyla, işlemleri istenen sırada kendiliğinden yapıyordu. Bellekte bilgi tutan birim BInary digiT (bit) idi. Bu birim elektronik sinyal var-yok (on-off veya 0-1) değerlerini alabilirdi. Bit'ler bir araya gelip byte'ları oluşturdu. Bellek, byte'ları içeren manyetik drumlardı. Her byte'ın belirli bir adresi vardı. Programın icra edilmesi demek, bellekte belirli adreslere byte değerleri yazmak ve okumak demekti. Bellekteki bir adreste bir veri kayıtlı olabileceği gibi bir komut da kayıtlı olabilirdi.
Kaynak: PROGRAMLAMANIN EVRİMİ
 
Makine dili, işlemcilerin dilidir bir bakıma. Bu rehberime bakabilirsin.


Makine dilinin bağlandığı, Logic gate kavramı için de buna:

 
"Sembolik makine dili" diye tabir edilen Assembly dili, 1 ve 0'ların kümelenmesi ile "opcode" veya "instruction" adı verilen "kalıp kodları" çıkardı. Bu kalıp kodlar, 1 ve 0'lara göre daha okunabilirdir.

Daha sonra Assembly'nin üzerine de C ve C++ gibi diller eklendi. Bir C veya C++ kodu, derlendiği zaman Assembly koduna (daha doğrusu instruction'larına) dönüşür, daha sonra da derleyici ile birlikte gelen Assembler, Assembly formatını da 1 ve 0'lara dönüştürerek çıktı verir.
 
"Sembolik makine dili" diye tabir edilen Assembly dili, 1 ve 0'ların kümelenmesi ile "opcode" veya "instruction" adı verilen "kalıp kodları" çıkardı. Bu kalıp kodlar, 1 ve 0'lara göre daha okunabilirdir.

Daha sonra Assembly'nin üzerine de C ve C++ gibi diller eklendi. Bir C veya C++ kodu, derlendiği zaman Assembly koduna (daha doğrusu instruction'larına) dönüşür, daha sonra da derleyici ile birlikte gelen Assembler, Assembly formatını da 1 ve 0'lara dönüştürerek çıktı verir.

Şunu da ekleyeim, C ve C++ gibi diller taşınabilirken, Assembly dili taşınamaz. Zira her makinenin Makine Dili farklıdır. X86 Assembly'de yazdığın kodu ARM Assembly'de çalıştıramazsın. Ya da C64 ile x86 işlemciyi kontrol edemezsin.

Zira Assembly ya da makine dili, adına ne dersen, direkt olarak işlemcinin mimarisi ile alakalıdır.
 
İkilik sistemlerdir 0 ve 1
0 => kapalı
1 => açık
Devrelerde transistörlerin yardımıyla mantık kapıları oluşturulur. Bir transistörden akım geçiyorsa açık (1) akım geçmiyorsa kapalı (0) değerini alır.
Transistörleri araştırmanı öneririm. 21. yüzyıl medeniyetinin kilit taşı bu transistörlerdir.
 
Assembly dillerini anlamak istiyorsan öğrenebileceğin en basit Assembly dillerden birisi olan MIPS'e bakabilirsin.
Bellek yönetimi, Stack Calls, Register ve Flagler ile Değişken yönetimi, Sub-prodecure kullanımı, Float ve Integer Aritmetiği gibi bir çok konuyu da öğrenmiş olursun.

x86'nın aksine MIPS'in komutları sabit 32 bit uzunluğundadır ve küçük bir tablo kullanılarak elle bile makine koduna çevrilebilir.
 
Tamam
İkilik sistemlerdir 0 ve 1
0 => kapalı
1 => açık
Devrelerde transistörlerin yardımıyla mantık kapıları oluşturulur. Bir transistörden akım geçiyorsa açık (1) akım geçmiyorsa kapalı (0) değerini alır.
Transistörleri araştırmanı öneririm. 21. yüzyıl medeniyetinin kilit taşı bu transistörlerdir.

Tamam
 

Geri
Yukarı