I am trying to understand what criteria a register must have to be called a "general purpose register".
I believe a general purpose register is a register that can be used for anything (for calculation, for moving of data to/from it, etc.) and is a register that doesn't have a special purpose.
Now I have read that the ESP register is a general purpose register. I guess the ESP register can be used for anything, but the ESP register also have a special purpose, which is to point to the top of the stack.
So does that mean that ESP register is a special purpose register?