D
push dword[eax]
pop dword [eax]
прекрасно работают, единственный момент ты в этом случае должен указать компилятору размер данных dword word byte и тд. чтобы он понимал сколько брать и сколько класть потому, что когда ты просто делаешь pop eax скажем, ты как бы задаешь размер данных названием регистра а когда дело касается других источников, приемников, то там нужно уже размер данных указать вручную. А так логика push/pop соблюдена в фасме получается единообразно с mov