Ну для этого нужно ещё сделать call, который займёт у тебя 5 байт. Потом ты делаешь push eax/pop eax и ret что равно 7 байт. Не решение, но да - так можно.
Без call никто ему не передаст никакой EIP. Вот выше решение - после инициализации и передачи управления коду, ОС выполняет call, и у тебя уже есть EIP на старт. Потом прибавляешь нужное смещение