به احتمال زیاد تابع اسمبلی با نام extern در C همخوانی نداره که لینکر پیغام خطا میده. بطور کلی سعی کن این الگو رو دنبال کنی:
تابع خودت در اسمبلی رو به این صورت بنویس:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بعد در کد C این تابع رو به اینصورت فراخوانی کن:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا برای فراخوانی تابع با متغیرهای ورودی در اسمبلی، اگر با Directive ها آشنایی داری و به کمک TASM میتونی به صورت خلاصه زیر یک متغیر رو pass کنی به برنامت در C:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که متغیر ورودی در NOS ذخیره شده. برای درک بهتر Directive ها، کد بالا در واقع کد پایین است که بدون Directive نوشته شده است:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که فراخوانی اون در کد C شما به صورت زیر خواهد بود:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در آخر، برای کامپایل کردن برنامه ابتدا کد اسمبلی و سپس کد C را به صورت زیر کامپایل کنید:
TASM MUFUN.asm
که منجر به تولید فایل MYFUN.obj می گردد. سپس فایل C را به صورت زیر کامپایل کنید:
TCC myprogram.c MYFUN.asm
دقت کنید فایل C را در همان مسیری کامپایل کنید که فابل obj اسمبلی ساخته شده وجود داشته باشد.