Я пытаюсь понять базовый язык ассемблера, изучая информацию фрейма стека в GDB.Я попытался выяснить, что произошло, когда функция вызывается основной функцией.
Но я обнаружил, что значение "frame at" в "info frame" отличается от значения регистра ebp в "info"рег».По соглашению, не должны ли эти два значения указывать начальную точку кадра стека и быть идентичными?
(gdb) info frame
Stack level 0, frame at 0xffffced8:
...
(gdb) info reg
esp 0xffffcec0 0xffffcec0
ebp 0xffffced0 0xffffced0
Я полагаю, это потому, что адрес от 0xffffced8 до 0xffffced0 используется для хранения таких данных, как адрес возврата и входные параметры?Как я могу проверить свою идею?