🚀 BAŞTAN SONA x86 ASSEMBLY BÖLÜM-4: Yığın (Stack) Mimarisi, Fonksiyonlar (`CALL` / `RET`) ve Stack Frame 💻

Konu Özeti

x86 Assembly'de yığın (stack) belleğinin LIFO yapısı, yüksek adresten düşük adrese büyüme özelliği ve ESP yazmacının rolü açıklanıyor. PUSH ve POP komutlarının çalışma mekanizması, CALL/RET ile fonksiyon çağrıları ve stack frame yönetimi ele alınıyor. Bu bölüm, alt programların nasıl yürütüldüğünü ve yerel değişkenlerin bellekte nasıl organize edildiğini öğretmeyi amaçlıyor.

🚀 BAŞTAN SONA x86 ASSEMBLY BÖLÜM-4: Yığın (Stack) Mimarisi, Fonksiyonlar (`CALL` / `RET`) ve Stack Frame 💻

Selamlar! Serimizin 4. bölümüne hoş geldiniz.

Önceki bölümde bitsel mantıksal işlemleri (`AND`, `OR`, `XOR`, `NOT`), `CMP` ve `TEST` komutlarını, `EFLAGS` durum bayraklarını ve `if/else` akışlarını oluşturan koşullu dallanma (`Jcc`) talimatlarını incelemiştik. Bu bölümde ise bilgisayar mimarisinin kalbi olan **Yığın (Stack) Bellek Yapısını**, **`PUSH` / `POP`** komutlarını, alt program/fonksiyon çağrılarını (**`CALL` / `RET`**) ve **Stack Frame (Çerçeve)** yönetimini öğreneceğiz.

---

📌 1. Yığın (Stack) Bellek Nedir ve Nasıl Çalışır? 🥞

Stack; LIFO (Last In, First Out - Son Giren İlk Çıkar) mantığıyla çalışan, geçici verilerin, fonksiyon parametrelerinin ve dönüş adreslerinin saklandığı özel bir bellek alanıdır.

### x86 Mimarisinde Stack'in En Kritik Özelliği:
⚠️ **Stack Yüksek Adresten Düşük Adrese Doğru Büyür!**
• Stack'e yeni bir veri eklendiğinde yığın göstericisi **`ESP` (Stack Pointer)** azalır (`ESP -= 4`).
• Stack'ten veri çekildiğinde **`ESP`** artar (`ESP += 4`).

---

📥 2. Yığın Komutları: `PUSH` ve `POP` 📤

### A. `PUSH` (Yığına Veri Ekleme):
Belirtilen yazmaç, bellek değeri veya sabiti yığına iter.
• Arka planda çalışan mekanizma:
1. `ESP = ESP - 4` (32-bit mimari için)
2. `[ESP] = Veri`

```nasm
push eax ; EAX değerini yığının en üstüne iter
push 0x1234 ; Sabit değeri y
ığına iter

🔒 Bu içeriği görmek için giriş yapın

 
Yanıt yazmak için giriş yapmalısınız
Forum özelliklerini kullanmak ve Level 2 üyelik satın almak için hesabınıza giriş yapın.
135,050Konular
3,297,712Mesajlar
326,237Kullanıcılar
thekral21Son Üye
Üst Alt