برای مشاهده مفیدترین ارسال در این موضوع اینجا کلیک کنید

نمایش نتایج: از شماره 1 تا 5 از مجموع 5
Like Tree1نفر پسندیدند
  • 1 ارسال توسط Hossein

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

  1. #1
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    32
    ارسال ها
    1,307
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    2 امتياز مثبت از 2 راي
    آيا اين پست براي شما سودمند بود؟ بله | خیر

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

    سلام به همگی
    عموما کسایی که تازه اسمبلی یاد میگیرن تو نحوه اجرای کد و ساختن فایل اجرایی مشکل دارن . تو این تاپیک میخوام نحوه انجام این کار رو انجام بدم .
    از فایل ضمیمه هم میتونید فایلهای مورد نیاز و برنامه نمونه رو دنلود کنید .
    .
    خیلی خب . ما یه برنامه ساده داریم که دوتا عدد رو از هم کم میکنه .
    کد برنامه ما اینه :
    ;in the name of GOD
    INCLUDE IO.H

    DATA SEGMENT
    MESSAGE1 DB 'ENTER A NUMBER',10,13,0
    MESSAGE2 DB 'ENTER SECOND NUMBER',10,13,0

    A DB 6 DUP(0),0
    B DB 6 DUP(0),0
    C DB 6 DUP(0),0
    DATA ENDS


    CODE SEGMENT

    ASSUME CS:CODE , DS:DATA
    START:
    MOV AX,DATA
    MOV DS,AX

    OUTPUT MESSAGE1
    INPUTS A,4 ;يک عدد دو رقمي دريافت کن
    ATOI A

    MOV BX,AX

    OUTPUT MESSAGE2
    INPUTS B,4
    ATOI B

    SUB BX,AX ;NUM1 = NUM1 - NUM2
    ;ADD BX,AX ;NUM1 = NUM1 + NUM2

    ITOA C,BX
    OUTPUT C
    EXIT:

    MOV AH,4CH
    INT 21H

    CODE ENDS
    END START




    حالا ما میخوایم این سورس کد رو به فایل اجرایی تبدیل کنیم .
    برای اینکار ما به فایلهای Masm.exe و Link.exe نیاز داریم .
    فایل Masm.exe میاد سورس کد ما رو کامپایل میکنه و Object file اون رو میسازه ( اگه سورس کد اروری نداشته باشه باید یه فایل .obj ساخته بشه )
    فایل Link.exe هم تبدیل فایل Object برناممون رو تبدیل به فایل اجرایی میکنه ( همون .exe ) .

    نحوه استفاده هم به این صورت هست :
    اسم سوس کد ما هست sub.asm بصورت زیر عمل میکنیم :

    فایل Masm.exe رو اول اجرا میکنیم .

    1.تو خط اول اسم سوس کدمون یا آدرس سورس کدمون رو مینویسیم . ( اگه فایلهای Masm,Link و سورس کد ما همه کنار هم هستن کافیه فقط اسم سورس کد رو بنویسیم اما اگه سورس کد ما تو یه پوشه دیگه هست باید آدرس کامل اون رو اینجا بنویسیم .

    پس برای حالت اول مینویسیم :
    sub.asm
    اگه سورس کد ما تو یه پوشه دیگه هست اینطور باید بنویسیم : ( مثلا سورس کد من تو درایو سی تو پوشه asm هست ) .
    C:\asm\sub.asm
    دقت کنید تو آدرس که دارید میدید حتما پسوند .asm رو قید کنید .
    2. تو خط دوم از ما میپرسه چه نامی برای فایل object میخوایم بزاریم .ما انتر میکنیم ( یعنی همون نام سورس کد رو بزار روش )
    3.تو خط سوم از ما میپرسه چه اسمی برای فایل lst میخوایم بزاریم . دوباره انتر میکنیم تا نام پیش فرض که نام سورس کد ما هست انتخاب بشه . (فایل lst توضیحات سورس کد ما رو در خودش داره - اگه اروری وجود داشته باشه تو این فایل بخوبی مشخص هست )
    4. تو خط چهارم هم از ما یک نام برای فایل crf میخواد که مثل بالا عمل میکنیم .
    حالا باید 4 فایل جدید کنار سورس کدتون ساخته شده باشه . بنام sub.OBJوsub.lst و sub.crf و sub.map

    حالا باید فایل اجرایی رو بسازیم . برای اینکار Link.exe رو اجرا میکنیم .

    1. تو خط اول اسم فایل object که تو مرحله قبل ساختیم وارد میکنیم .(نکته رو بخونید)
    2. تو خط دوم هم یه اسم برای فایل اجرایی تازمون وارد میکنیم ( پیش فرض خودش نام سورس کد رو به اضافه .exe برای ما انتخاب کرده ) ما با زدن انتر نام پیشفرض رو قبول میکنیم .
    3. تو مرحله سوم و چهارم هم اگر از کتابخانه ای استفاده کردیم نامهای اون رو جلوی خطوط مربوطه مینویسیم . اگر استفاده نکردیم نیازی به نوشتن چیزی نیست .
    4. خب کار ما تموم هست و الان باید فایل اجرایی ما ساخته شده باشه

    Info نکته :
    اگر ما در برنامه مون از ماکروهای فایل IO.h استفاده کرده باشیم . حتما باید تو مرحله اول لینک وقتی که داریم اسم فایل object رو میدیم . اسم فایل آبجکت IO رو هم بدیم یعنی باید به این صورت عمل کنیم .

    sub.obj+IO.obj



    برای اینکه هر بار مجبور نباشیم برای دیدن یه تغییر کوچیک در کد کلی راه بریم تا خروجی بگیریم میتونیم از Batch file استفاده کنیم .
    یعنی بیاییم همه کدهایی که بالا بصورت یکی بعد از دیگری میزدیم . یکدفعه بزنیم .
    برای اینکار notepad رو باز میکنیم و توش به این صورت دستورات رو مینویسیم :
    masm sub.asm,,,,
    link sub+io,,,,
    pause

    خب حالا این فایل رو با نام "compile.bat" ذخیره کنید ( علامت نقل قول هم همراهش باشه ) .
    حالا توضیح :
    خط اول میاد به فایل Masm اسمهایی رو که میخواد میده . ( بین هر کاما که جلوی فایل masm نوشته میتونید یه اسم دلخواه بنویسید - اگه خالی بزارید مثل این میمونه که وقتی به اون خط رسیدید انتر زده باشید )
    خط دوم هم میاد به لینک پارامترهایی که نیاز داره میده . دقت کنید که چون من در این برنامه از ماکروهای io.h استفاده کردم بجای نوشتن sub اومدم sub+io رو نوشتم .
    pause هم مانع از بسته شدن پنجره میشه و اینطور شما میتونید ارورها و اتفاقات افتاده رو ببینید .

    این فایل رو کنار بقیه فایلها قرار بدید و برای کامپایل کردن و ساختن فایل اجرایی کافیه این فایل رو اجرا کنید . یادتون باشه هر وقت تغییری تو سورس کدتون دادید اول اون رو ذخیره کنید و بعد این فایل رو اجرا کنید تا آخرین تغییرات سورسکدتون اعمال بشه (اینو گفتم چون خیلی ها فراموش میکنن ) .

    (ورژن 6.11 مسم و 5.6 لینک هم جداگانه قرار دادم . آموزش و نحوه کار یکی هست . فقط اینکه تو این ورژنبا مسم باید از طریق cmd کار کنید یا از همون بچ فایل که بالا گفتم استفاده کنید . ورژن 6.11 خیلی بهتر از 5.10 هست و گیرهای کمتری موقع کامپایل میده )

    موضوعات مشابه:
    فایل های پیوست شده
    • نوع فایل: zip SUB.zip (212.3 کیلو بایت,  این فایل 80 بار دانلود شده است)
    • نوع فایل: zip masm 6.11 and link 5.60.zip (485.1 کیلو بایت,  این فایل 167 بار دانلود شده است)
    single این نویسه را میپسندد.
    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




  2. #2
    عضو تازه وارد
    تاریخ عضویت
    1970 January
    ارسال ها
    16
    تشکر
    104
    تشکر شده 50 بار در 25 پست


    1 امتياز مثبت از 1 راي
    آيا اين پست براي شما سودمند بود؟ بله | خیر
    خیلی خوب بود ،فقط گفته بودید فیلمشم هست
    من ندیدم!
    البته شاید تو پستای دیگه منظورتون بوده چون دوتا فیلم از پستای دیگه دانلود کردم
    ممنون


  3. #3
    عضو تازه وارد
    تاریخ عضویت
    2013 November
    ارسال ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    آقا این که دانلود نمیشه


  4. #4
    مهشید فلاح
    تاریخ عضویت
    2012 January
    سن
    26
    ارسال ها
    294
    تشکر
    1,374
    تشکر شده 863 بار در 337 پست
    نوشته های وبلاگ
    10


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    من الان تست کردم مشکلی نداشت

    امام جواد علیه السلام :
    ثَلاثٌ مَن کُنَّ فِیهِ لَم یَندَم: تَرکُ العَجَلة ، وَ المَشوِرَة ، وَ التَّوَکُلُ عَلَی اللهِ عِندَ العَزمِ؛
    سه چیز است که هر ** آن را مراعات کند ، پشمیان نگردد : 1 - اجتناب از عجله ، 2 - مشورت کردن ، 3 - و توکل بر خدا در هنگام تصمیم گیری .





  5. #5
    عضو تازه وارد
    تاریخ عضویت
    2018 December
    ارسال ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    سلام برامن دانلود نمیشه چرا؟


 

 

کاربران برچسب خورده در این موضوع

کلمات کلیدی این موضوع

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  


Powered by vBulletin
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
Persian Language By Ustmb.ir
این انجمن کاملا مستقل بوده و هیچ ارتباطی با دانشگاه علوم و فنون مازندران و مسئولان آن ندارد..این انجمن و تمامی محتوای تولید شده در آن توسط دانشجویان فعلی و فارغ التحصیل ادوار گذشته این دانشگاه برای استفاده دانشجویان جدید این دانشگاه و جامعه دانشگاهی کشور فراهم شده است.لطفا برای اطلاعات بیشتر در رابطه با ماهیت انجمن با مدیریت انجمن ارتباط برقرار کنید
ساعت 01:39 AM بر حسب GMT +4.5 می باشد.