Операции, которые помещают значения в «стек» для процессора x86 (например, операции, включающие ESP, такие как PUSH, CALL и т. Д.), Все передают 4-байтовые приращения. Эффективная ширина стека составляет 4 байта / 32 бита. Если вы кодируете процессор x64, он имеет ширину 8 байт, но вы спросили о IA32.
У меня всегда был указатель стека, выровненный по границе 4 байта (DWORD). Я не знаю, можете ли вы DWORD-выровнять стек и заставить его работать должным образом; если это произойдет, вы заплатите серьезную потерю производительности при доступе к памяти для толчков и всплывающих окон (что очень часто делается в реальном коде), потому что реальный процессор хочет читать небольшими порциями размера два *.