CPU Kayıtları (Registers)
- CPU içinde bulunan küçük, yüksek hızlı depolama alanlarıdır.
- Verileri geçici olarak saklar ve CPU işlemlerini kontrol eder.
- Kesmeleri (interrupts) ve bellek işlemlerini (memory operations) yönetir.
- Verileri depolamak, üzerinde işlem yapmak ve talimatları yürütmek için hayati öneme sahiptir.
Genel Amaçlı Kayıtlar (General Purpose Registers)
Sekiz adet genel amaçlı kayıt bulunmaktadır:
eax → Accumulator (Toplayıcı)
Genellikle aritmetik ve mantıksal işlemlerde kullanılır. Ayrıca çoğu zaman fonksiyonların dönüş değerini tutar.
ebx → Base Register (Taban Kaydı)
Genellikle bazı bellek alanlarının (örneğin bir dizinin başlangıç adresi) taban adresini tutar.
Verilere erişimde etkili adresin hesaplanmasına yardımcı olur
ecx → Counter (Sayaç)
Genellikle sayaç olarak kullanılır; örneğin, döngülerin yineleme sayısını veya bir dizgenin uzunluğunu saymak için.
edx → Data Register (Veri Kaydı)
Genellikle eax ile birlikte kullanılarak 64 bitlik değerlerin saklanması veya işlenmesinde görev alır.edx:eax biçiminde birlikte çalışırlar.
esp → Stack Pointer (Yığın Göstergesi)
Daima yığının (stack) en üst noktasını işaret ede
ebp → Stack Base Pointer (Yığın Taban Göstergesi)
Mevcut fonksiyonun yığın çerçevesinin taban göstergesidir.
Yerel değişkenlere ve parametrelere erişmek için kullanılır
esi → Source Index (Kaynak İndeksi)
Veri blokları kopyalanırken, genellikle kaynak adresi göstergesi olarak kullanılır.
edi → Destination Index (Hedef İndeksi)
Veri blokları kopyalanırken, genellikle hedef adresi göstergesi olarak kullanılır.
Özel Amaçlı Kayıtlar (Special Purpose Registers)
eip → Instruction Pointer (Talimat Göstergesi)
Program sayacı gibi davranır; CPU tarafından yürütülecek bir sonraki talimatın bellek adresini gösterir.
Kaynakça:
Exploit Geliştirme 101 (2. Baskı) – M. ALPARSLAN AKYILDIZ
Hacking: The Art of Exploitation, 2nd Edition