
/* Пример 4. Автор Ю.А. Богоявленский.
  
   17 апреля 2008 г.
 
   Вызов из C программы функции, реализованной на ассемблере */

/*  Компиляция и редактирование связей:

    gcc -m32 -gstabs+ -o c-as call-as.c func-for-c.S

    вызывающая программа на C в файле call-as.c

    функции на ассемблере в файле func-for-c.S
    
*/

/* программа, эквивалентная вызывающей из примера на функции */

 #include <stdio.h>

/* прототип внешней функции 

   Параметр 1 - количество символов, кот. надо обработать
   Параметр 2 - адрес первого элемента массива

*/

extern char* Read_Sym(int, char*);

/* массив результатов*/
 
int Numbers[10];

int main()
{ 
    char Symbols[14] = "1234567";  /* исходный массив*/
    int i;
    Read_Sym(8, Symbols);          /* вызов as функции */
     
    /* печать результата */

    for (i = 0; i < 8; i++)
        printf("%d\t", Numbers[i]);

    return 0; 
}

