assembly dili ne demek?
Assembly Dili
Assembly dili (ya da sembolik makine dili), bir bilgisayarın merkezi işlem birimi (CPU) tarafından doğrudan çalıştırılabilen makine diline en yakın programlama dilidir. Makine dilindeki binary kodların insanlar tarafından okunabilir sembolik kodlarla (mnemonic'ler) ifade edilmesidir.
Temel Özellikleri:
- Düşük Seviye: Donanıma en yakın programlama dilidir. Bu nedenle, bilgisayarın mimarisi hakkında detaylı bilgi gerektirir.
- Mnemonic'ler: Her makine kodu komutu, belirli bir işlemi temsil eden kısaltılmış bir sembolik isimle (mnemonic) ifade edilir. Örneğin, toplama işlemi için "ADD", çıkarma işlemi için "SUB" gibi.
- Doğrudan Bellek Erişimi: Assembly dili, programcının bellek adreslerine doğrudan erişmesine ve veri işlemesine olanak tanır.
- Platform Bağımlılığı: Assembly dili, belirli bir işlemci mimarisine özgüdür. Farklı işlemci mimarileri için farklı assembly dilleri kullanılır. (Örn: x86, ARM)
- Assembler: Assembly dilinde yazılan kod, bir assembler programı tarafından makine diline çevrilir.
Avantajları:
- Yüksek Performans: Donanıma doğrudan erişim sayesinde, performans kritik uygulamalarda (örneğin, işletim sistemi çekirdekleri, gömülü sistemler) yüksek verimlilik sağlar.
- Donanım Kontrolü: Donanım kaynaklarını (örneğin, giriş/çıkış portları) doğrudan kontrol etme imkanı sunar.
- Bellek Optimizasyonu: Bellek kullanımını en ince ayrıntısına kadar kontrol etme olanağı verir.
- Tersine Mühendislik: Yazılımların çalışma prensiplerini anlamak için kullanılır.
Dezavantajları:
- Zor Öğrenme ve Kullanım: Donanım bilgisi gerektirdiği için öğrenmesi ve kullanması zordur.
- Uzun Kod: Aynı işlevi yerine getiren yüksek seviyeli dillere kıyasla daha uzun kod yazılmasını gerektirir.
- Okunabilirlik: Kodun okunabilirliği ve anlaşılabilirliği düşüktür.
- Bakım Zorluğu: Kodun bakımı ve güncellenmesi zordur.
- Platform Bağımlılığı: Yazılan kod, sadece belirli bir işlemci mimarisinde çalışır.
Kullanım Alanları:
- İşletim Sistemi Çekirdekleri: İşletim sistemlerinin temel fonksiyonları (bellek yönetimi, süreç yönetimi vb.) genellikle assembly dilinde yazılır.
- Gömülü Sistemler: Donanım kaynaklarına doğrudan erişim gerektiğinden, gömülü sistemlerde (örneğin, otomotiv elektroniği, endüstriyel kontrol sistemleri) yaygın olarak kullanılır.
- Cihaz Sürücüleri: Donanımla doğrudan iletişim kurmak için cihaz sürücüleri assembly dilinde yazılabilir.
- Oyun Geliştirme: Performansın kritik olduğu bazı oyun bölümlerinde veya grafik işlemlerde assembly dilinden faydalanılabilir.
- Virüs ve Zararlı Yazılım Analizi: Zararlı yazılımların çalışma prensiplerini anlamak ve tersine mühendislik yapmak için kullanılır.
- Kriptografi: Şifreleme algoritmalarının optimize edilmiş uygulamaları assembly dilinde yazılabilir.