интернете видел что некоторые делают add rsp, 4. Почему и в чем разница?
Пример покажите где это делают. Именно rsp 4 - странно это. Может быть выравнивание стека, но, в случае 64 битного кода там неоткуда взяться 4. Там выравнивают до 16. Т.е. коррекции в rsp будут кратны 8. Может быть восстановление стека (push делали не для сохранения регистров, а для передачи аргументов в функцию), потом после выхода из функции в некоторых соглашениях стек восстанавливает тот кто вызывал функцию. Но тоже add rsp, 4 не должно быть. Может быть или esp, 4 или rsp, 8.
Да, я ошибся. Было add esp, 4
Обсуждают сегодня