As from this Question What is Application binary Interface, ABIs cover details such as
My questions are,
A compiler is just a program like an image manipulation program. You have an input and an output, in both cases they have to conform to some standard (language, file format). But how you do it is up to you. For the compiler case you only need to make code that will work on the target platform which is defined by the instruction set, and for a sane compiler you choose or create a calling convention that works for the language, but it is up to you.