В некоторых местах я читал, что стеки растут с более высокого адреса на более низкий адрес, но когда я сам проверил его, я заметил, что он увеличивается с более низкого до более высокого адреса. Например, я выделил стек для потока по адресу 2aba5ab06010 и в какой-то момент обнаружил, что его значение равно 2aba5b7050f0 , что явно больше вершины стека.
Но когда я проверяю разборку, я вижу, что прологи функций вычитают% rsp, а эпилоги добавляют его, поэтому в этом смысле значение% rsp не должно быть меньше вершины стека. Почему эти противоречивые результаты?
Обратите внимание, что я использую Linux на 64-битной машине x86 и компилятор gcc.