I see, so in that case you just pop it first and store it in a register. Then you have all your string on the stack so you can pop it one by one. After you are done you should push your EIP back to the stack because ret will pop it automatically from there.
Maybe this is what you want:
pop Some_register // will get your return address stored in a register
while (not end of string)
pop AX // bring current char to AX for processing
push Some_register // return your desired address to stack
ret // will fetch your correct return address.
Does it make sense? If you could copy and paste this portion of your code it would make it easier for people to help you. Guessing is hard