General Purpose
These 32-bit (and 16/8 for their components) registers can be used for anything:
eax (ax/ah/al)    Accumulator   
ebx (bx/bh/bl)    Base   
ecx (cx/ch/cl)    Counter   
edx (dx/dh/dl)    Data   

Pointer Registers
Actually, you can use pointer registers as general purpose registers (except for eip), as long as you preserve their original values. Pointer registers are called pointer registers because their often used for storing memory addresses. Some opcodes also (movb,scasb,etc.) use them.

esi (si)    Source index   
edi (di)    Destination index   
eip (ip)    Instruction pointer


Stack Registers
There are 2 stack registers: esp & ebp. Esp holds the current stack position in memory (more about this in one of the next tutorials). Ebp is used in functions as pointer to the local variables.
esp (sp)    Stack pointer   
ebp (bp)    Base pointer   


dd = declare dword, dw = declare word, db = declare byte

Byte        8 bit         00
Word       16 bit       00 00
DWord      32 bit      00 00 00 00