I found the following from an online book:
If the procedure has more than 6 parameters, they are pushed on the stack in reverse order (last parameter first). Pushing parameters in reverse order (as in 32bit) allows functions with a variable number of arguments (varargs)
I don't get the last sentence, pushing parameters in reverse order allows us to read parameter1 first then parameter2 etc... But how this really helps?
If parameter1 contains the total number of parameters I would understand, but that's not the case as functions like printf can take many parameters without us providing the number of parameters we passed.