Добавление дополнительных пробелов в стек

Я изучал основы ASM на Assembly "hello, world" для OS X, когда я увидел это:

    sub esp, 4                ; OS X (and BSD) system calls needs "extra space" on stack

Мне интересно, предназначено ли пространство для локальных переменных или как-то связано с системным вызовом.

Спасибо тебе.

Post-Scriptum: если вы хотите порекомендовать какие-либо документы или книги, сообщите мне


person eldten    schedule 30.03.2016    source источник
comment
IIRC, что дополнительное пространство связано с тем, что системный вызов предназначен для размещения в своей собственной функции, и в этом случае это пространство является обратным адресом. В вашем коде он, вероятно, встроен, поэтому вам нужно сделать это пространство вручную. Хотя, может быть, я совершенно не прав :)   -  person Jester    schedule 31.03.2016
comment
Ага @Jester. Я недавно написал как часть этого ответа на этот отрывок После помещения аргументов в стек в обратном порядке для int 0x80 вы должен выделить в стеке дополнительные 4 байта (DWORD). Значение в этой ячейке памяти в стеке не имеет значения. Это требование является артефактом из старое соглашение UNIX   -  person Michael Petch    schedule 31.03.2016