Application Binary Interface (ABI) taken from http://www.yourdictionary.com/api
Application Binary Interface (ABI) a specification defining requirements for portability of applications at binary level (i.e., executables) no recompilation or relinking interoperability (assembly language subroutine can be called from HLL) usually associated with a particular OS or OS family
Application Binary Interface (ABI) thus, an executable compiled according to one ABI will not typically run under a different OS on the same machine also: allows assembly language routines to be called from HLL routines, and HLL routines to be called from assembly language routines
Application Binary Interface (ABI) specifications in ABI include: specific processor or processor family any required processor features (e.g., SIMD instructions) data formats register usage conventions stack frame format parameter passing, including fp/structure/union parameters return value passing, including fp/structure/union return values specific OS or OS family object and executable file formats
Application Binary Interface (ABI) example register conventions actual parameters return value(s) return address stack pointer frame pointer global area pointer constant pool pointer temporaries caller-saved (if caller wants them preserved over call, caller must save and restore) callee-saved (if called subroutines wants to use them, subroutine must save and retore)
Application Binary Interface (ABI) ARM ABI - http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0036b/index.html