This chapter outlines the basic design of an assembly language function that can be called from a C program. In order for an assembly language program to interoperate with a C program or the C library functions or the operating system calls, certain conventions about register usage, stack usage, parameter passing, and returning values must be followed. These agreed-to conventions are referred to as the Application Binary Interface, the ABI.