BREND Posted December 15, 2007 Report Share Posted December 15, 2007 Помогите пожалуста, а то я ни где не могу найти. Есть задача: Нужно ввести действительное число: 4 байта = 1 б порядок 3 б мантисса. Сохранить его в переменную и вывести. И все!!! Пример приветствуется. Quote Link to comment Share on other sites More sharing options...
BREND Posted December 18, 2007 Author Report Share Posted December 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 не заходит. В чем проблема? Quote Link to comment Share on other sites More sharing options...
BREND Posted December 20, 2007 Author Report Share Posted December 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.