Вызов С-шной Printf Из Ассемблерной Программы (tasm). Не Работает

Тема в разделе "Другие", создана пользователем -, 3 ноя 2011.

  1. Гость

    Сори за тройное создание темы. Что-то глюкнуло, удалить не могу уже

    Здравствуйте. Проблема такая.

    Вызываю функции стандартной библиотеки C (printf и system) из asm-программы, вроде бы подключаю нужные lib- и obj-файлы с помощью директивы INCLUDELIB. Линковщик при сборке не ругается, всё нормально. Но функции почему-то не работают.

    Компилятор - tasm для DOS.
    Библиотеки - из пакета TurboC 2.0 тоже для DOS.

    Причём, сам asm-файл не писаный вручную, а генерированный тем же TurboC. Нужные файлы библиотек я определил так: пробовал компилировать напрямую C-файл в exe-файл, удаляя при этом один за другим файлы lib и obj (их там не очень много).

    Вот такой hello world на C:
    Код (C++):
    #include "stdio.h"

    int main(void)
    {
    printf("Hello world\n");
    system("pause");
    return 0;
    }
    Генерируется на ассемблере (INCLUDELIB дописал вручную):
    Причём сама по себе asm-программа работает: пробовал ставить в main строчку lp: jmp lp, и программа зависала, т.е. выполнение кода идёт. Выходит, именно функции не вызываются. Может быть я что-то упустил?
     
Загрузка...
Похожие Темы - Вызов шной Printf
  1. k85
    Ответов:
    0
    Просмотров:
    359
  2. alexas1
    Ответов:
    0
    Просмотров:
    505
  3. Sanchezz86
    Ответов:
    1
    Просмотров:
    585
  4. vln1981
    Ответов:
    0
    Просмотров:
    704
  5. JohnLemon
    Ответов:
    1
    Просмотров:
    830

Поделиться этой страницей