В статье (_http://wasm.ru/article.php?article=asminunix) есть вот такой кусок (пример вызова сист. функции в FreeBSD): Код (Text): sys_call: int 0x80 ret start: push msg_len ; размер строки push msg ; адрес строки push 1 ; stdout mov eax,4 ; номер системной функции - sys_write call sys_call [b] add esp,4*3 ; очищаем за собой стек [/b] Впрочем, от функции sys_call можно отказаться, достаточно просто помещать в стек лишний dword: Код (Text): start: push msg_len ; размер строки push msg ; адрес строки push 1 ; stdout mov eax,4 ; номер системной функции - sys_write push eax ; все что угодно int 0x80 [b]add esp,4*3 ; очищаем за собой стек [/b] Вопрос: во втором случае мы пушим в стек 4 дворда (пусть даже один из них не используемый), почему тогда к esp прибавляется 4*3, а не 4*4 ?