Most assembly programs make use of the 4 general purpose registers eax, ebx, ecx, and edx but I find that quite often I need to use more than 4 registers to accomplish my task easily without having to push and pop from the stack too much. Since my program has no intentions of using the FPU or MMX registers for floating point calculations or their "intended use", is it considered acceptable to use these extra registers in your program?
Eg. using mm0 for a loop increment counter freeing up the ecx register to do other things.