BREND Опубликовано 15 декабря, 2007 Жалоба Поделиться Опубликовано 15 декабря, 2007 Помогите пожалуста, а то я ни где не могу найти. Есть задача: Нужно ввести действительное число: 4 байта = 1 б порядок 3 б мантисса. Сохранить его в переменную и вывести. И все!!! Пример приветствуется. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
BREND Опубликовано 18 декабря, 2007 Автор Жалоба Поделиться Опубликовано 18 декабря, 2007 Опа?! Приехали. :thumbup: Можно такой вариант - вызывать С продедури в Ассемблере. .MODEL small,C EXTRN C _test:PROC .CODE call _test C END Но, когда я делаю Tlink 2.obj+inp.obj,2.exe то выдает: Error: Undefined symbol __TEST in module 2.ASM Error: Undefined symbol _PRINTF in module INP.CPP Error: Undefined symbol FIDRQQ in module INP.CPP Error: Undefined symbol _SCANF in module INP.CPP exe создается, а в этот call не заходит. В чем проблема? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
BREND Опубликовано 20 декабря, 2007 Автор Жалоба Поделиться Опубликовано 20 декабря, 2007 Я нашел ответ на этот вопрос. С Borland C получаеться лажа, потому я использовал Pasclal. Проиблема в том, что для вызова функциии Паскаля из Ассемблера нужно сначала вызывать Ассемблерную функцию из Паскаля!!! ( во закрутил :) ) Короче 'неудобно'. :g: Код на Асме: .model small.stack 100h.datab dd 0EXTRN fl:QWORD.codeEXTRN inp_float:NEAREXTRN out_float:NEARpublic startstart PROC NEAR;----------------------call inp_floatfld ds:flfstp bfld bfstp ds:flcall out_float;----------------------retstart ENDPend Код на Паскале: {$L qwe.obj}program inp_out;procedure start; external;varfl : double;procedure inp_float;beginreadln(fl);end;procedure out_float;beginwriteln(fl);end;beginstart;end. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.