home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / programming / misc_programming / INASM / READ.ME < prev   
Text File  |  1990-11-15  |  3KB  |  61 lines

  1.  
  2.  
  3.  
  4.          Ada / Assembly Mixed Language Interface
  5.          ---------------------------------------
  6.  
  7.     This note provides additional information regarding the use
  8.     of Assembly code with Ada programs.  In particular, it
  9.     discusses how to use Intel's assembly language development
  10.     tools with Ada programs.  Please read the Ada Compiler
  11.     User's Guide and associated Release Notes before reading this
  12.     material.  Information included in the Ada Run-Time
  13.     Customization Library may also be useful in interfacing to
  14.     assembly language programs.
  15.  
  16.     In order to be able to interface to assembly language
  17.     routines, the following procedures should be followed:
  18.  
  19.     1.  Install the appropriate assembly language development
  20.     tools.  The provided assembly language test file and
  21.     batch file assumes that the Intel tools are used and
  22.     are installed in the \INTEL86 directory.
  23.  
  24.     2.  Compile the Ada programs and assemble the assembly language
  25.     programs.
  26.  
  27.     3.  Pre-link the Ada object modules with BAMP making sure to
  28.     specify the "-r" and "-i" options.  Note that the "-i"
  29.     option tells BAMP to create an Intel compatible object
  30.     module file.  Do not specify the "-i" option to BAMP if a
  31.     Microsoft compatible object module file is desired.
  32.  
  33.     4.  Link the pre-linked Ada object module and all the
  34.     assembly language object modules together using the
  35.     appropriate assembly language development tools.
  36.  
  37.  
  38.     When interfacing to assembly language routines, it is very
  39.     important that the Ada calling conventions are followed.  These
  40.     conventions are described in the User's Guide.  It can be quite
  41.     useful to compile sample Ada subprogram bodies that duplicate the
  42.     interface to the assembly language routines and then look at the
  43.     sample code (either with a machine code debugger, or by telling
  44.     the Ada compiler to produce annotated assembly code with the
  45.     ADA "-S" and "-fe" options) to see how the conventions actually
  46.     work.
  47.  
  48.     Also, note that all calls are FAR calls when between object
  49.     modules and that all data pointers are 32-bit pointers.  In
  50.     addition, Ada programs require that the values of the DS, SS and
  51.     BP registers be preserved across subprogram calls and that the
  52.     called subprogram is responsible for popping its own arguments
  53.     off the stack by adjusting the SP register.
  54.  
  55.     Included with this release are some sample Ada and Assembly
  56.     programs which illustrate the use of pragma interface(Assembly).
  57.     These programs are called ASMTEST.ADA and ADOSTST.ASM.  Simply
  58.     create the Ada library with NEWLIB and run the batch file
  59.     MAKEASM to compile, assemble and link these programs.  The
  60.     resulting executable file, ASMTEST.EXE can be run under DOS.
  61.