# برنامه نویسی سطح پایین > برنامه نویسی اسمبلی خانواده x86 >  نحوه اجرای اسمبلی

## microcontroller

سلام
من این ترم واحد اسمبلی گرفتم و اصلا وارد به این درس نیستم
برنامه رو نصب کردم و یک برنامه نوشتم حالا باید اینو چه جوری ببینم اجرا می شه یا نه؟ :لبخندساده

----------


## lajevardi

باید روی سیستم ات توربو اسمبلر(TASM)  یا  ماکرو اسمبلر (MASM) بریزی;
 فایلت رو با نام first.asm تو شاخه bin ذخیره کن، از طریق Command Prompt به اون شاخه برو ودستورات زیر رو تایپ کن:
*
MASM first.asm  
TLINK first
first
*خط دستور اول  (در صورتی که کد نویسی ات مشکلی نداشته باشه)  فایل obj. رو ایجاد میکنه ، این فایل یه زبان ماشین هست ولی هنوز قابلیت اجرا نداره!
خط دستور دوم موجب ایجاد فایل exe. میشه ، خط دستور سوم هم که فایل رو اجرا میکنه!

در صورت که از TASM استفاده میکنی، تو خط دستور اول به جای MASM از TASM استفاده کن.
برات یه ماکرو اسمبلر UpLoad کردم:


http://lajevardi.persiangig.com/app/Masm.v.6.11.rar 
  Save Target as...
http://masm32.com

----------


## s312p990

چطور اسمبلی را یاد بگیریم ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ سودابه از اهواز

----------


## Mr.reCoder

کتاب نوشته دکتر حسن سید رضی خیلی خوبه!
مبتدی نوشته و برای اول کار خیلی بهتره! اما اینو بدونین که فقط با یک کتاب و یک ترم درس نمیشه اسمبلی دان شد!!

----------


## Arcsinos

میشه بگید توی سیستم عامل های 64bit چطوری میتونم برنامه های اسمبلی رو اجرا کنم ؟

----------


## hamzeh1989

سلام
سلام به دوستای عزیز ، یه کتاب خیلی خوب برای یادگیری اسمبلی می خوام ، خواهشا راهنمایی کنید
ممنون

----------


## java88

دوستان 
استاد ما به ما گفته که در محیط notepad برنامه تون رو بنویسید.میشه فرق این که ما در notepad بنویسم یا در جاهای دیگر (راستش رو بخواید من اصلا نمی دونم تو کجا غیر از notepad می تونم کد رو بنویسم)اگر میشه یه توضیح کلی بدید.

----------


## محسن شامحمدی

> دوستان 
> استاد ما به ما گفته که در محیط notepad برنامه تون رو بنویسید.میشه فرق این که ما در notepad بنویسم یا در جاهای دیگر (راستش رو بخواید من اصلا نمی دونم تو کجا غیر از notepad می تونم کد رو بنویسم)اگر میشه یه توضیح کلی بدید.


در هر برنامه ای که فقط متون ذخیره بشن و هیچ کاراکتر اضافه ای غیر از متن ها ذخیره نشه. 
در اینطور برنامه ها شما اجازه bold ,italic,underline و تغییر فونت نوشته ها را ندارید.

نمونه هایی از برنامه هایی که قابل استفاده نیستند:
wordpad
microsoft word
....

نمونه های قابل استفاده:
notepad
notepad2
notepad++
.....

----------


## mahdi68

من با دستور MASM.EXE filename.asm  فایلی با پسوند .obj  تولید میکنم و بعد دستور LINK.EXE filename.obj میزنم ولی هیچ اتفاقی نمیفته و فایل اجرایی تولید نمیشه !!! هیچ پیغامی هم نمیده !!! کجای کارم اشتباه هست ؟

----------


## israel_javate

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

----------


## IamOverlord

من این کارو می کنم:

1) یه برنامه ی Assembly می نویسم : MyProgram.ASM
2) فایل برنامه رو می گیرم، می کشم، می ندازم تو FASM.EXE!
2.5) می شد فقط روی FASM.EXE کلید کنیم و در محیطی که میاره کدمون رو بزنیم... به همین راحتی.
3. کلید F9 رو می زنم، برنامه ام خود به خود کامپایل می شه و اجرا هم می شه.


اما برای کارهای متفاوت مثل گرفتن فایل Object، می تونید از خط فرمان FASM استفاده کنید و بهش بگید می خواید خروجیتون چی باشه.

در کل بگم من عاشق FASM هستم!  :قلب:

----------


## xman_1365_x

*براي برنامه هاي داس(com,exe) درmasm از سايت masm32 اسمبلر رو دريافت كنيد و از دستورات زير استفاده كنيد:
اسمبل كردن و ساخت obj
MASM first.asm  
لينك كردن
LINK16 first
اجرا
first

ساخت و اسمبل با ساختار هاي ديگه كمي متفاوت هست كه انشا الله يعدا ميگم.
موفق باشيد.
*

----------


## notepad

سلام خدمت تمامی دوستان... 
چه فرقی می کنه که masm تحت Dos باشه یا تحت windows؟

----------


## IamOverlord

منظورتون خود کامپیالر MASM هست یا حالت برنامه هایی که می خواید تولید کنید؟

----------


## notepad

سلام...
بیشتر منظورم compliler بود.ولی اگه هر دو موردم توضیح بدهید بیشتر ممنونتون میشم
با تشکر

----------


## IamOverlord

خوب حالت برنامه ها که طبیعتا به محیط اجرا و این جور مسائل ربط داره، مثلا برای DOS، Linux یا Windows ...، ولی اکثر مواقع خود کامپیالر ها رو دیدم که به صورت Console مانند ساخته می شن که فقط با ارسال پارامتر از خط فرمان برنامه رو کامپایل کنه و Editor رو هم به صورت Window Application می نویسن واسه راحتی برنامه نویس و از این جور مسائل.

----------


## MostafaMohammadi

> باید روی سیستم ات توربو اسمبلر(TASM)  یا  ماکرو اسمبلر (MASM) بریزی;
>  فایلت رو با نام first.asm تو شاخه bin ذخیره کن، از طریق Command Prompt به اون شاخه برو ودستورات زیر رو تایپ کن:
> *
> MASM first.asm  
> TLINK first
> first
> *خط دستور اول  (در صورتی که کد نویسی ات مشکلی نداشته باشه)  فایل obj. رو ایجاد میکنه ، این فایل یه زبان ماشین هست ولی هنوز قابلیت اجرا نداره!
> خط دستور دوم موجب ایجاد فایل exe. میشه ، خط دستور سوم هم که فایل رو اجرا میکنه!
> 
> ...


 آدرس دانلود نرم افزار MASM به زیر تغییر پیدا کرده:
http://lajevardi.persiangig.com/app/asm/Masm.v.6.11.rar

----------


## MostafaMohammadi

> *براي برنامه هاي داس(com,exe) درmasm از سايت masm32 اسمبلر رو دريافت كنيد و از دستورات زير استفاده كنيد:
> اسمبل كردن و ساخت obj
> MASM first.asm  
> لينك كردن
> LINK16 first
> اجرا
> first
> 
> ساخت و اسمبل با ساختار هاي ديگه كمي متفاوت هست كه انشا الله يعدا ميگم.
> ...


 سلام من به تازگی برنامه MASM32 رو نصب کردم و نمی تونم برنامه هام رو توش کامپایل کنم.  این برنامه تحت ویندوز است، پس دستوراتی که شما گفتید رو باید کجا بزنم؟ من سعی کردم توی Cmd Promptای که در برنامه هست، این دستورات رو اجرا کنم ولی Error داد که دستور MASM شناخته شده نیست. داخل پوشه برنامه رو هم گشتم و فایلی به نام "MASM" وجود نداره، این دستور به نظرم منطقی نمیرسه.
البته در مسیر masm32\bin\link16.exe فایل link16 وجود داره و فکر می کنم از نظر دستور:
LINK16 <FILENAME.OBJ>
مشکلی نباشه.
میشه راهنمایی ام کنید؟

----------


## xman_1365_x

> سلام من به تازگی برنامه MASM32 رو نصب کردم و نمی تونم برنامه هام رو توش کامپایل کنم. این برنامه تحت ویندوز است، پس دستوراتی که شما گفتید رو باید کجا بزنم؟ من سعی کردم توی Cmd Promptای که در برنامه هست، این دستورات رو اجرا کنم ولی Error داد که دستور MASM شناخته شده نیست. داخل پوشه برنامه رو هم گشتم و فایلی به نام "MASM" وجود نداره، این دستور به نظرم منطقی نمیرسه.


masm32 توانایی ایجاد فایل آبجکت معماری ia32 که شامل 8086 تا سری های پنتیوم و ... میشه رو داره ، بله من در پستم فراموش کردم بگم برای اسمبل در masm6 فایل اجرایی به ml تغییر نام پیدا کرده،پس به طریق زیر فایل رو اسمبل و لینک کنید.

ml /c yourfile.asm

link16 yourfile

ضمنا directive برای کدتون هم فراموش نشه .286 بنویسید
موفق باشی

----------


## shineab

با سلام این فایلی که گفتید دانلود و نصب کردم اما وقتی از cmd میخوام ml /c ,.... رو بنویسم میگه که دستور ml نداریم ویندوز من ویستا هست
لطفا راهنمایی کنید

----------


## shineab

سلام به همگی 
من همین برنامه ای که گفتید رو دانلود و مطابق همون گزینه win nt/dos,... که هر دو رو ساپورت کنه نصب کردم
اما وقتی دستور ml ,..... رو مینویسم میگه که instruction or register not accepted in current cpu mode روی دستور های 
.MODEL FLAT

ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD  ایراد میگیره 
بعدش هم روی include io.h که میگه پیداش نمیکنم
اگر ممکنه راهنمایی کنید بسیار اجر اخروی و دنیوی داره
ممنون از شما :خجالت:  :لبخند:

----------

