макрос invoke как раз и придуман, чтобы не думать о выравнивании стека и об аргументах... а чтобы не выравнивать стек в "start:" в nasmx допустим есть макросы proc и endproc... в никуда) можете в интернете почитать с какой функции стартует процесс... потому что архитектура другая, в x32 кстати стек тоже должен быть выровнен, но на более "удобную" границу... вопрос в другом: почему вы упорно не хотите читать об этом, но продолжаете упорно задавать глупые вопросы) ЗЫ если не хотите разбираться - сделайте проще: пишите тот же код на си, в настройках проекта ставите выводить асм код, контрол-ц, контрол-в, собираете код тем же ml64...