Что возвращают функции то и заталкиваем, то есть:
invoke AllocConsole
invoke GetStdHandle, STD_INPUT_HANDLE
push eax ;InputHandle
push eax ;InputHandle
invoke GetStdHandle, STD_OUTPUT_HANDLE
push eax ; OutputHandle
invoke SetConsoleMode, eax, ENABLE_PROCESSED_OUTPUT ; OutputHandle
pop eax
invoke WriteConsole, eax, hello, msgsz, NULL, NULL ; OutputHandle
invoke FlushConsoleInputBuffer ; функция сама забирает 1 аргумент, InputHandle
pop eax
invoke ReadConsole, eax, buf, bufsz, cnt, NULL ; InputHandle
invoke FreeConsole
invoke ExitProcess,0
Компиляторы кстати так делать не будут. Они или сохранят значения в ebx, esi, edi или будут сохранять в стек через [ebp-x].