retq
derleme talimatının nereye döndüğünü anlayamıyorum.Retq yönergesi, nerede dönüyor
Normal kodum yürütüldüğünde, yığında belirtilen adrese döndüğünü anlıyorum. Ancak yığında bulunan iade adresinin nerede olduğunu nasıl biliyor?
Kısacası, yığındaki adresi bulmak için rbp veya esp kullanıyor mu? en numune bakalım: biz retq önce talimat yoktur görebilirsiniz
fun:
push %rbp
mov %rsp,%rbp
...
...
pop %rbp
retq
main:
...
...
callq "address" <fun>
...
...
Denemek isterseniz, 'retq 'yerine' addq $ 8,% rsp; jmpq -8 (% rsp). Fonksiyonel olarak eşdeğer (performans açısından değil). –