Copyright (C) 2000-2012 |
GNU Info (nasm.info)Section 7.5.37.5.3. Using `c16.mac' With Pascal Programs ------------------------------------------- The `c16.mac' macro package, described in *Note Section 7.4.5::, can also be used to simplify writing functions to be called from Pascal programs, if you code `%define PASCAL'. This definition ensures that functions are far (it implies `FARCODE'), and also causes procedure return instructions to be generated with an operand. Defining `PASCAL' does not change the code which calculates the argument offsets; you must declare your function's arguments in reverse order. For example: %define PASCAL proc _pascalproc %$j arg 4 %$i arg mov ax,[bp + %$i] mov bx,[bp + %$j] mov es,[bp + %$j + 2] add ax,[bx] endproc This defines the same routine, conceptually, as the example in *Note Section 7.4.5::: it defines a function taking two arguments, an integer and a pointer to an integer, which returns the sum of the integer and the contents of the pointer. The only difference between this code and the large-model C version is that `PASCAL' is defined instead of `FARCODE', and that the arguments are declared in reverse order. automatically generated by info2www version 1.2.2.9 |