PDA

View Full Version : پیوند اسمبلی و سی



Iran-PC
جمعه 18 آذر 1384, 11:21 صبح
سلام
میخواستم بدونم چطور میشه یه فایل اسمبلی رو به یک فایل سی پیوند زد؟
یه مثالی هست که یک فایل با پسوند
asm
داره و یک فایل با پسوند
cpp
و تو فایل سی از توابع داخل فایل اسمبلی استفاده میکنه.
اما من که اینکار رو میکنم ارور میده.

aakh1361
جمعه 18 آذر 1384, 16:41 عصر
شما باید توابعی که درون فایل اسمبلی تعریف کردین رو به اولشون یک _ اضافه کنید وداخل فایل C تون اسن توابع اسمبلی رو بدن _ فراخوانی کنید
مثال


;asm
_myasm proc far

retf
_myasm endp


//C
extern far void myasm();

void main()
{
myasm();
};

حالا شما هر کدوم رو تک تک کامپایل کن و فایل ابجکتشون رو با هم لینک کن

نکته :فایلهای CPP در زمان کامپایل نام توابع خارجی رو تیکه تیکه می کنند بهتره فایلوتن رو با پسوند C کامپایل کنید

Iran-PC
جمعه 18 آذر 1384, 19:23 عصر
از این ارور میده مدام



Compiling SVGA.C:
Linking SVGA.EXE:
•Linker Error: Undefined symbol _setpix in module SVGA.C
Linker Error: Undefined symbol _init800600 in module SVGA.C



فایل اسمبلی رو هم که میخوام کامپایل کنم همین ارور رو میده.
فایلها رو هم که تو اون تاپیک نوشتم.

aakh1361
شنبه 19 آذر 1384, 02:06 صبح
فایل اسمبلی رو هم که میخوام کامپایل کنم همین ارور رو میده.

چه اروری میده ؟
خروجی شون رو نشون بده

Iran-PC
شنبه 19 آذر 1384, 21:32 عصر
نمیدونم چرا ولی همون ارور بالایی رو میده
یعنی باز هم به فایل سی گیر میده.
ببینم این به خاطر این نیست که اسم هر دو یکیه و فقط پسوندشون فرق میکنه؟

aakh1361
شنبه 19 آذر 1384, 23:42 عصر
بینم این به خاطر این نیست که اسم هر دو یکیه و فقط پسوندشون فرق میکنه؟

اگر فایل اسمبلی هم SVGA.ASM هست اسمش رو عوض کن
خروجی یادت نره !