İçeriğe atla
0 XP 0
0/6

Puan ders bitince hesaba yazılır. Bu dersi tamamlayınca +50 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.

8 dk · 50 XP · 6 etkinlik

Yığın ve çağrı düzeni

Yığın, sürecin belleğinde ayrılmış bir alandır. İlginç yanı yönüdür: yukarıdan aşağı büyür. Yeni değer eklendikçe adres küçülür. rsp kayıtçısı her an tepeyi gösterir.

push komutu iki iş yapar. Önce rsp değerini sekiz azaltır, sonra değeri o adrese yazar. pop tersini yapar; önce okur, sonra rsp değerini sekiz artırır. Sekiz sayısı 64 bitlik bir kelimenin bayt karşılığıdır.

; rsp = 0x7fffffffe300
push rax        ; rsp = 0x7fffffffe2f8, [rsp] = rax
push rbx        ; rsp = 0x7fffffffe2f0, [rsp] = rbx
pop  rcx        ; rcx = rbx, rsp = 0x7fffffffe2f8
Yığın aşağı büyür: her push adresi sekiz azaltır.

Örnekteki adresleri elle takip etmek anlamayı pekiştirir. Başlangıç adresi 0x7fffffffe300 değeridir. İlk push sekiz bayt düşer ve adres 0x7fffffffe2f8 olur; değer o yeni adrese yazılır. İkinci push aynı kuralı işletir ve adres bir sekiz bayt daha düşer. pop geldiğinde ise önce üstteki değer okunur, sonra adres sekiz bayt yükselir; sıra push işleminin tam tersidir. Bu düzeni bir kez kâğıt üstünde çalıştırdığında, sonraki her push ve pop satırını gözünde canlandırırsın.