You're close, let me help you:
You have 16 bowels on a table and you put noodles in them. Now, you have a rack behind you of shelves. The bottom shelves all have bowls that are filled with noodles in them but the upper ones are empty bowls.
Now, we take our 16 bowls and we have some fun. We add this spice to this one and that spice to that one and we get it just right. So you have perfected your noodles. Now, you want to try something else, but you don't want to lose your 16 unique creations. However, your table only has room for 16 bowls. So, you dump the contents of the bowl you want to work with next into the lowest empty bowl on the shelves. (In ASM, the data will still exist in the register after pushing, so it is copied, not dumped, but same concept). Now, you have a free bowl to work with. That is pushing. To pop something is to take a bowl of noodles on the table, dump its contents in the trash, and then grab the top bowl in the shelves with noodles and pour it into the now empty bowl on the table. This is exactly how it works in ASM: the stack is erased at that point and moved into the register.