well its not that its not working. When you push the eax register on the stack it does go on the stack but you dont step on the eax register. so you will see the same numbers when u comment the push line out try this... try pushing eax on the register then sub eax,eax (clear the register) and you will see the number will disapear then after you test that out after clearing the register pop eax off teh stack and you will see the info was saved on the stack. Just becauase you push something on the stack it dont mean it will clear the register the reason for pushing something on the stack is to sorta save the info and then you use the register for other stuff then pop eax off teh stack to restore the info from before...
(it looks like your using an irvine library so me thinking that try this code....)
push eax
call dumpregs (you will see that eax is still the same)
sub eax,eax
call dumpregs (you will see that eax is 0)
pop eax
call dumpregs (you will see that eax is returned to the same before.)
If this dont work or you dont have the irvine library leave another message and ill answer asap
