For C/C++ 32-bit x86 it is roughly (I wrote that before looking at MSDN):
EAX - return value, otherwise scratch register.
EDX - upper 32-bits of 64-bit return value, otherwise scratch register.
ECX - this when using "thiscall", otherwise scratch.
EBX - preserved by callee.
EDI - preserved by callee.
ESI - preserved by callee.
EBP - preserved by callee.
ESP - stack pointer - varying between call form whether caller or callee cleans up arguments.
I think EAX, EDX and ECX are used for the three first args in "fastcall" calling convention - but I may be wrong on the exact registers.