View Full Version : سوال: اسمبلی نویسی با کامپایلر c
motherboard
سه شنبه 28 مرداد 1393, 16:13 عصر
سلام.اون طور که من اطلاع دارم با کامپایلر c میشه اسمبلی هم نوشت.سوالی که دارم اینه که ایا در واقع میشه از تمام گرامر های اسمبلی در c استفاده کرد.اون وقت اگه این طوریه.پس چرا برای اسمبلی tasm ساخته میشه.؟؟ کل منظورم اینه که اگه مثلا یک فردی زبان اسمبلی رو فول اتومات بلد باشه ایا حتی بدون استفاده از masm و یا tasm می تونه با کامپایلر c از زبان اسمبلی به طور کامل استفاده کنه؟؟
masoud.8086
سه شنبه 28 مرداد 1393, 18:31 عصر
سلام
با کامپایلر c می توان اسمبلی نوشت اونم به دو صورت
یک:
در هر جای برنامه دوست داشتی ابتدا کلمه asm رو می نویسی و بعد} باز میکنی و دستورات و بعد {
مثلا:
}asm
دستورات اسمبلی
{
در روش دوم برنامه اسمبلی رو توی یه فایل جدا بعنوان یه تابع مینویسی و بعد تبدیل به obj و توی برنامه c اونو فراخوانی میکنی
که توضیحاتش خیلی طولانیه ..
در مورد اینکه بدون استفاده از tasm ,masm میشه مستقیم با کامپایلر c برنامه اسمبلی نوشت باید بگم که نه نمیشه بدون tasm ,masmاین کارو انجام داد بخاطر چند دلیل:
1- باید نوع و ترتیب سگمت ها در توربو اسمبلر و توربو c کاملا با هم تطبیق داشته باشن
2-برنامه های TC , TASM باید شناسه ها و توابع خود را به اشتراک بزارن که بشه تو C از اسمبلی استفاده کرد
3- برای برقراری ارتباط باید از TLINK استفاده کرد.
حالا موضوع اصلی اینه که این دو روشی که من گفتم در بالا در روش اول استفاده که این روش بود
}asm
دستورات اسمبلی
{
محدودیت های داره که نمیشه همشیه از این روش استفاده کرد پس اگه میخوای اسمبلی تو C بنویسی اجبار باید بصورت زیر برنامه بنویسی و بعد تیدیلش کنی به OBJ پس باید از TASM , MASM استفاده کنی که زیر برنامه ای که با اسمبلی نوشتی رو به OBJ تبدیل کنی پس استفاد از TASM ,MASM ضروریه..
امیدوارم جوابو سوالتو گرفته باشی..
موفق باشی.
motherboard
سه شنبه 28 مرداد 1393, 18:38 عصر
در روش دوم برنامه اسمبلی رو توی یه فایل جدا بعنوان یه تابع مینویسی و بعد تبدیل به obj و توی برنامه c اونو فراخوانی میکنی
که توضیحاتش خیلی طولانیه ..
اون طور که من فهمیدم روش دومی بهتره.احیانا لینک و اموزشی برای این روش دومی هست که من بتونم از اون استفاده کنم؟
masoud.8086
سه شنبه 28 مرداد 1393, 19:04 عصر
کتاب C جعفر نژاد صفحه 635 تا 645
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.