assembly ne demek?

## Assembly Dili Hakkında

Assembly dili, [makine diline](https://www.nedemek.page/kavramlar/makine%20dili) en yakın programlama dilidir. Her bir assembly komutu, işlemcinin doğrudan çalıştırabileceği bir makine kodu talimatına karşılık gelir. Bu nedenle, assembly dili, donanımı doğrudan kontrol etmeyi ve yüksek performanslı kod yazmayı sağlar.

**Temel Kavramlar:**

*   **[Opcode](https://www.nedemek.page/kavramlar/opcode):** Bir işlemin (toplama, çıkarma, veri taşıma vb.) kodunu temsil eder.
*   **[Operand](https://www.nedemek.page/kavramlar/operand):** Opcode'un üzerinde işlem yapacağı veriyi veya verinin adresini belirtir. Bu veriler [register](https://www.nedemek.page/kavramlar/register) adresleri veya sabit değerler olabilir.
*   **[Register](https://www.nedemek.page/kavramlar/register):** İşlemci içinde yer alan, verileri geçici olarak saklamak için kullanılan hızlı erişimli hafıza bölgeleridir. Örneğin, `AX`, `BX`, `CX`, `DX` gibi genel amaçlı register'lar ve `SP` (stack pointer), `BP` (base pointer) gibi özel amaçlı register'lar bulunur.
*   **[Adresleme Modları](https://www.nedemek.page/kavramlar/adresleme%20modlar%C4%B1):** Operand'ın nasıl yorumlanacağını ve veriye nasıl erişileceğini belirler. Doğrudan adresleme, dolaylı adresleme, register adresleme gibi farklı adresleme modları mevcuttur.
*   **[Yığın (Stack)](https://www.nedemek.page/kavramlar/y%C4%B1%C4%9F%C4%B1n):** Verilerin son giren ilk çıkar (LIFO) prensibiyle saklandığı bir hafıza bölgesidir. Fonksiyon çağrıları ve yerel değişkenlerin saklanması gibi işlemlerde kullanılır.

**Assembly Dilinin Kullanım Alanları:**

*   **[Gömülü Sistemler](https://www.nedemek.page/kavramlar/g%C3%B6m%C3%BCl%C3%BC%20sistemler):** Donanımı doğrudan kontrol etme ihtiyacı duyulan cihazlarda (örneğin, mikrokontrolcüler).
*   **[Cihaz Sürücüleri](https://www.nedemek.page/kavramlar/cihaz%20s%C3%BCr%C3%BCc%C3%BCleri):** İşletim sistemi ile donanım arasındaki iletişimi sağlayan yazılımlarda.
*   **[Tersine Mühendislik](https://www.nedemek.page/kavramlar/tersine%20m%C3%BChendislik):** Çalışma prensibini anlamak için bir yazılımın assembly kodunu analiz etme.
*   **[Optimizasyon](https://www.nedemek.page/kavramlar/optimizasyon):** Kritik kod bölümlerini daha hızlı ve verimli hale getirmek için.
*   **[Virüs ve Zararlı Yazılım Analizi](https://www.nedemek.page/kavramlar/vir%C3%BCs%20analizi):** Zararlı yazılımların davranışlarını ve işlevlerini anlamak için.

**Avantajları:**

*   Donanım üzerinde tam kontrol.
*   Yüksek performans ve optimizasyon imkanı.
*   Makine diline yakınlık sayesinde sistem kaynaklarını verimli kullanma.

**Dezavantajları:**

*   Öğrenmesi ve yazması zordur.
*   Platform bağımlılığı yüksektir.
*   Kod yazımı uzun ve karmaşıktır.