Mehmet YILMAZ
2 min readNov 10, 2019

Assembly dili nedir ve kimler bu dili kullanır?

Assembler’da yazılmış bir program, işlemci tarafından çalıştırılacak komutların yukardan aşağıya yazılmasıdır. Bu komutalara örnek olarak, iki farklı register’deki değerlerin toplanması, hafızanın belli bir adresinde bulunan bir sayının bir register’a aktarılması, işletim sistemine “system call” gönderilmesi vb. olabilir.

C dili “büyük insan” Dennis Ritchie tarafından icat edilene kadar, tüm bilgisayar programları assembly dilinde yazılmak zorunda idi. (Nur içinde yatsın) Dennis Amca, “bu iş böyle gitmez, kod yazma işini kolaylaştıralım” demiş ve 1972 yılında C dilini icat etmiştir. Aynı mantık ile daha sonra yüzlerce yazılım dili (c++, pascal vb.) icat edilmiştir.

C dili kullanılarak geliştirilen bir yazılım, compiler vasıtası ile makina diline dönüştürülmektedir. Assembly de makina dili değil miydi? O zaman, C dilini kullanmanın ne gereği var, aynı noktaya gelmedik mi gene? Bir yazılım hangi dil ile yazılırsa yazılısın (assembly, C vb.) sonuçta makina diline dönüşmekte ve makina tarafından çalıştırılmaktadır.

Bir yazılımı Assembly yerine C dili ile yazmanın;

(1) avantajı: geliştirme sürecinin daha kolay ve hızlı olması,

(2) dez avantajı: makina diline dönüştürülen (derlenen) kodun, assembly dilinde geliştirilen eşleniğine göre daha uzun olması (daha fazla sayıda komutun işlemciden geçmesi) ve sonuçta daha yavaş çalışmasıdır.

Yani özetle, Assembly dilinde geliştirmek çok pahalı ve uzun sürer ama çalışma anında çok daha hızlıdır.

Günümüzde Assembly dili nerede ve ne amaçla kullanılıyor?

Yazılımların yüksek hız gerektiren bölümlerinde assembly dili kullanılıyor. İşletim sistemi tarafından kullanılan bazı kodların hızı tüm sistemin hızını etkileyebilmektedir. Bu yüzden windows ve linuz işletim sistemlerinin bazı bölümleri assembly ile geliştirilmiştir. Ayrıca aynı sebeple, oyun konsolu yazılımları, uçuş control sistemleri, sağlık cihazları, finansal operasyonlar ile ilgili yazılımlarda bu dil tercih edilmektedir.

Ayrıca, zararlı yazılım analizi ve tersine mühendislik alanlarının olmazsa olmazı assembly dilidir.

Neden öğrenmeliyim?

Assembly dili, donanım ile direk iletişim halindedir. Bu dili öğrenirken, işletim sisteminin çalışma mantığının nasıl olduğu, programların derlenmesinin nasıl gerçekleştiği, neden bazı işletim sistemlerinin diğerlerinden daha hızlı çalıştığı, derlenen program nasıl çalışır/yorumlanan program nasıl çalışır gibi onlarca temel sorunun cevabını da öğrenmiş oluruz. Bu farkındalık artışı yazılımcının sadece bilgi düzeyini artırmaz aynı zamanda maaşına da ciddi etki yapar.

Sonuç olarak;

Assembly dili, bilgisayar dünyasının popülerliği zamana göre azalmakta ve artmaktadır. Ama bir COBOL gibi tarihe karışmış değildir ve karışması mümkün değildir. Her zaman bu dili çeşitli derinlikte bilen bilgisayarcılara ihtiyaç duyulacaktır. Hız gerektiren yüksek karlı yazılım sektörlerinde, zararlı yazılım analizi, tersine mühendislik konularında bu dil bilen insanlara ihtiyaç duyulacağını öngörmek zor değildir.