-
Sadrazamv4
instagram:sadrazam.spy Tg:Sadrazamv4
🚀 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
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