10 Inline Assembler

If you need to write low-level software that interacts directly with the hardware, Ada provides two ways for you to incorporate assembly language code into your program. First, you can import and invoke external routines written in assembly language, an Ada feature fully supported by GNAT. However, for small sections of code, it may be simpler or more efficient to include assembly language statements directly in your Ada source program, using the facilities of the implementation-defined package System.Machine_Code, which incorporates the gcc Inline Assembler. The Inline Assembler approach offers a number of advantages, including the following:

This appendix presents a series of examples to show you how to use the Inline Assembler. Although it focuses on the Intel x86, the general approach applies also to other processors. It is assumed you are familiar with both Ada and assembly language programming.