You can do that, just (equivalent of your code) do something like:
push ebp
mov ebp, esp
sub esp, 64
mov [ebp - 4], eax
mov [ebp - 8], ebx
mov [ebp - 12], ecx
mov [ebp - 16], edx
mov [ebp - 20], esi
mov [ebp - 24], edi
mov eax, [ebp] ; restore original ebp into eax
mov [ebp - 28], eax ; and store into “ebp” location
What I’m wondering is why you’re referencing the Linux/amd64 and Linux/i386 syscall ABI here, yet seem to be doing the kernel component… (if you’re hacking your own OS, there are better calling conventions for syscalls; if you’re hacking Linux you’ll never see the raw calling arguments). But not the problem at hand, so… ok.