واضح آرشیو وب فارسی:سایت ریسک: اسمبلی aminoia 13 آبان 1386, 20:27سلام به همه مجید آنلاینی ها من در مورد اسمبلی یه مشکل دارم اگه میشه راهنمایی کنید من وقتی برنامه رو به اسمبلی می نویسم نه میدونم که چه جوری اونو اجرا کنم؟ the_king 03 آذر 1386, 03:43اگه برنامه اسمبلی رو بصورت مستقل می نویسید احتیاج به یک کامپایلر تحت DOS دارید، مثل : Microsoft Macro Assembler اول برنامه اسمبلی رو بطور کامل داخل یک فایل متنی می گذارید که پسوند فایل رو ASM بگذارید بهتره. بعد با کامپایلر مربوطه فایل اجرایی EXE و یا COM اونرو می سازید، که نوع فایل اجرایی بستگی به کد شما داره. آخرین نسخه های کامپایلر MASM هم شامل MASM.exe هستند و هم ML.exe که ML نسخه جدید و پیشرفته کامپایلر است و MASM.exe فقط واسه سازگاری با نسخه های قبلی ارائه می شه. همچنین باید فایل اجرایی LINK.exe و چند فایل دیگه هم در مسیر PATH وجود داشته باشند و یا در شاخه فعلی کپی کرده باشیدش. بهتره این مسیر دو شاخه BIN و BINR را در PATH سیستم اضافه کنید : SET PATH=%PATH%;C:MASM611BIN;C:MASM611BINR البته مسیر این دو شاخه ممکنه در کامپیوتر شما فرق کنه. دستوری که برای ساختن فایل اجرایی لازم دارید را باید در DOS و یا Command Prompt بنویسید : MASM.exe test.asm; یا ML.exe test.asm من فرض کردم که اسم فایل کد برنامه اسمبلی ما test.asm است، دقت کنید که MASM.exe به کاراکتر ; بعد از اسم فایل اسمبلی احتیاج داره و علاوه بر این در نسخه های قدیمی کامپایلر، برای ساختن فایلهای COM احتیاج به EXE2BIN هم دارید که یک برنامه جانبی است، پس توصیه می کنم که در صورت امکان از ML.exe استفاده کنید. نمونه ای از محتویات یک فایل اسمبلی از نوع COM اینجوری میشه : .MODEL TINY .CODE .STARTUP .386 MOV AH,9 LEA DX,mymsg INT 21H .EXIT mymsg DB "Hello, This is a test." END دقت کنید که در فایلهای COM باید کدها و داده های شما در کنار هم و داخل یک سگمنت واحد باشند و پشته نداریم. نمونه ای از محتویات یک فایل اسمبلی از نوع EXE اینجوری میشه : .MODEL SMALL .STACK .DATA mymsg DB "Hello, This is a test." .CODE .STARTUP MOV AH,9 LEA DX,mymsg INT 21H .EXIT END دقت کنید که در فایلهای EXE ما هم سگمنت کد داریم و هم سگمنت داده و هم سگمنت پشته. طریقه کامپایل کردن هر دو فایل یکسانه، کامپایلر از دستور MODEL برای فهمیدن نوع استفاده می کنه. وقتی فایل اجرایی test.exe یا test.com ساخته شد آنرا به راحتی اجرا می کنید، تا پیغام زیر نمایش داده بشه : Hello, This is a test. the_king 03 آذر 1386, 04:53البته کامپایلر های دیگری هم هستند مثل TASM که به اندازه قبلی کاربرد عمومی ندارند. بین کدهای زبان ++C هم میتوانید اسمبلی بنویسید ولی باید از خیر خیلی امکانات متعارف زبان اسمبلی بگذرید. اینطوری : _asm { MOV AX,4 MOV BX,20 MOV CX,10 L001: ADD AX,BX DEC BX LOOP L001 } L001 اسم یک برچسب (Label) است. در زبان پاسکال هم چنین قابلیتی وجود داره، اما دردسر اش کمی بیشتره. aminoia 08 آذر 1386, 11:12خیلی ممنون
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1951]