【发布时间】:2026-02-05 21:10:01
【问题描述】:
我无法理解汇编指令retq 返回到哪里。
我了解当我的正常代码执行时,它会返回到堆栈中指定的地址。但是它怎么知道返回地址在栈中的哪个位置呢?
简而言之,它是使用 rbp 还是 esp 来查找堆栈上的地址?
【问题讨论】:
-
如果您想进行实验,请尝试将
retq替换为addq $8, %rsp; jmpq -8(%rsp)。功能上等价(虽然不是性能方面)。
标签: assembly x86-64 stack-overflow inline-assembly