¿Por qué printf sobrescribe el registro ECX?

Lo séprintf devuelve el número de caracteres impresos en EAX. Por que esprintf cambio de registro ECX a 0? Mi fragmento de código:

push eax    
push intFormat
call printf 
add esp,8

Estoy ejecutando mi código en una distribución de Linux de 64 bits.

Respuestas a la pregunta(1)

Su respuesta a la pregunta