اجرای دستورات و برنامه اسمبلی در محیط نرم افزار
اسلاید 1: اجرای دستورات و برنامه اسمبلی در محیط نرم افزار Debugاستاد راهنما : آقای عبّاسیتهیه کننده: سعید رضا ولی زادهE-mail: srvalizadeh@yahoo.comwww.SoftGozar.Com
اسلاید 2: آشنایی با چند دستور اسمبلی و کاربرد آن هانکتهاگر در دستور فقط عدد نوشته شود مانند: MOV BL,12 در این صورت عدد 12 به ثبات BL منتقل می شود. ولی اگر عدد داخل کروشه نوشته شود مثلا [0200] محتوای خانه حافظه ای که آدرس آن ، در سگمنت داده برابر 0200 است در نظر گرفته می شود. به عنوان مثال اگر نوشته شود: MOV BL,[0200]یعنی محتوای خانه حافظه ای که آدرس آن 0200 است به ثبات BL منتقل شود ، و اگر محتوای خانه حافظه آدرس مذکور ، عدد 25 باشد ، در این صورت عدد 25 به ثبات BL منتقل خواهد شد.www.SoftGozar.Com
اسلاید 3: کاربرد دستورات وقفه دستور INT : باعث می شود که برنامه شما موقتا قطع شود ، و به برنامه های سیستم عامل ، یا برنامه های BIOS مراجعه شود ، عملیات خواسته شده را انجام دهد ، و دوباره به برنامه شما برگردد.توجه : تمام مقادیر در مبنای hex هستند.www.SoftGozar.Com
اسلاید 4: تعدادی از سرویس های وقفهگرفتن تاریخ سیستماز دستور INT 21H استفاده می شود، به شرطی که قبلا در ثبات AH مقدار 2AH قرار داده شده باشد. یعنی:MOV AH,2AINT 21با اجرای این دستورات تاریخ سیستم در ثبات های زیر قرار میگیردروزهای هفته ( 0 برای یکشنبه ، 1 جهت دوشنبه ،2...) AL=سال ( به صورت هگزا مثلا 07D0=2000 ) = CXماه (به صورت هگزا 01 تا 0CH ) = DHروز (از 01 تا 1F به فرم هگزا) = DLمثالwww.SoftGozar.Com
اسلاید 5: دستور وقفه INT 32) پایان اجرای دستورات توسط دستور INT 3CPU به محض اجرای این دستور متوقف می شود و در صورت لزوم می توان محتویات ثبات ها و خانه های حافظه را برسی کرد.البته این دستور را می توان برای توقف اجرای دستورات برنامه نیز به کار برد ، در صورتی که از این دستور استفاده نشود ممکن است کامپیوتر قفل کند.www.SoftGozar.Com
اسلاید 6: DEBUG نرم افزار ابزاری کمکی جهت اجرای دستورات زبان اسمبلی و برای ایجاد ، آزمایش ، اجرا ، تغییر و اشکال یابی برنامه ، به زبان اسمبلی است.نکته : یکی از مزیت های استفاده از DEBUG ، این است که برنامه مستقیما قابل اجرا بوده ، نیازی به ترجمه ندارد
اسلاید 7: مزیت های استفاده از محیط debugمستقیما به زبان اسمبلی برنامه نوشت و آن را اجرا نمود.برنامه آماده به زبان اسمبلی را می توان به محیط deubug انتقال داده و آن را آزمایش کردبرنامه اسمبلی را می توان دستور به دستور اجرا کرد ، و محتوات ثبات ها ، و خانه حافظه را مشاهده و تغییرات لازم را انجام داد.محتویات حافظه هر سگمنت را می توان دیدمی توان تمام دستورات را به زبان اسمبلی و معادل آن را به زبان ماشین نشان داد.www.SoftGozar.Com
اسلاید 8: وارد شدن به محیط debugکافیست فایل اجرایی این نرم افزار را یعنی debug.exe زا توسط سیستم عامل اجرا کنیم ، در این حالت محیط کاری شبیه به DOS باز می شود با این تفاوت که به جای خط فرمان داس (C:>) یک علامت تیره(-) ظاهر می شود
اسلاید 9: اجرای debug در windowsاز start منو run را انتخاب می کنیمسپس کلمه debug را در run تایپ کرده دکمه enter را فشار می دهیمRUNSTART MENUDEBUG
اسلاید 10: خارج شدن از محیط DEBUG نکته: تمام دستورات debug تک حرفی هستندجهت خارج شدن از محیط DEBUG از فرمان Q استفاده می کنیم ، که این فرمان باعث می شود به سیستم عامل برگردیم
اسلاید 11: فرمان های برنامه DEBUGفرمان A(Assemble) : این فرمان برای وارد کردن دستورات زبان اسمبلی در حافظه ، و ترجمه آن هاست. شکل کلی این فرمان به صورت : <آدرس شروع> Aمی باشد که این آدرس ، آدرس شروع خانه حافظه ای در سگمنت کد است که ما می خواهیم دستور از آن آدرس به بعد نوشته شود(چون سیستم عامل به حافظه ای با افست آدرس 00 تا FF برای اطلاعات خود نیاز دارد ، لذا نرم افزار debug ، به عنوان پیش فرض از آدرس 100H برنامه را اجرا می کند.)www.SoftGozar.Com
اسلاید 12: پس از وارد کردن A100 دو عدد چهار رقمی ظاهر می شود که با یک علامت : از هم جدا شده اند مانند :-A 10013BC:0100عدد سمت چپ ، شماره سگمنت یعنی CS=13BC است و شماره سمت راست ، شماره افست خانه حافظه یعنی IP=100 می باشد. پس از دیدن این اعداد دستورات اسمبلی را وارد می کنیم. پس از هر دستور دکمه ENTER را می زنیم. وقتی که دستورات به پایان رسید یک بار ، بدون نوشتن دستوری ، دکمه ENTER را فشار می دهیم تا کار ورود دستورات اسمبلی به پایان رسد.www.SoftGozar.Com
اسلاید 13: مثال (تایپ دستورات اسمبلی در محیط debug )MOV AL,6 ; (1) MOV BL,8; (2) ADD AL,BL; (3) MOV DL,5; (4)
اسلاید 14: نام گذاری برنامهکافیست از فرمان :-N نام برنامه استفاده کنیم.مثلا در این مورد TEST.COM نام برنامه مربوطه می باشد که با فرمان زیر :-N TEST.COMاین نام به برنامه اختصاص داده می شودwww.SoftGozar.Com
اسلاید 15: فرمانUدستور U (Un assemble) باعث می شود که دستوراتی که به زبان ماشین در حافظه قرار دارند ، به زبان اسمبلی برگردانده شودشکل کلی فرمانU <آدرس شروع> <آدرس پایان>www.SoftGozar.Com
اسلاید 16: مثالاگر بخواهیم از دستور 100H تا 104H را به صورت اسمبلی ببینیمU 100 104نتیجه:www.SoftGozar.Com
اسلاید 17: اگر مقابل فرمان U شماره ای نگذاریم ، محتویات حافظه از CS:100 تا CS:120 را که 32 بایت می شود به صورت دستورات اسمبلی و معادل آن ها را به صورت دستورات زبان ماشین نشان می دهددستورات زبان اسمبلیدستورات زبان ماشینwww.SoftGozar.Com
اسلاید 18: فرمان RR (Register) این فرمان محتوای ثبات ها را نمایش می دهد ، علاوه بر این وضعیت بیت های پرچم را نشان می دهدR [نام ثبات]اگر نام ثبات ذکر نشود ، تمامی ثبات ها را روی مانیتور نمایش می دهدwww.SoftGozar.Com
اسلاید 19: مثال-Rتوجه: وضعیت بیت های پرچم به صورت NV UP .. نوشته شده است.www.SoftGozar.Com
اسلاید 20: ثبات پرچم دارای وضعیت های زیر می باشدwww.SoftGozar.Com
اسلاید 21: مشاهده محتویات یک ثبات خاصکافی است بعد از فرمان R نام ثبات را تایپ کنیمبه عنوان مثال:-R AXAX 000E:0000محتویات ثبات AX را برابر 000E نشان می دهد. و در سطر بعد علامت : را می گذارد که اگر بخواهیم مقدار ثبات را عوض کنیم ، کافیست عدد مربوطه را تایپ کنیم که در این مثال بعد از علامت : عدد جدید مثلا صفر را وارد ثبات AX می کینم
اسلاید 22: مشاهده محتویات ثبات پرچمبا استفاده از دستور-RF
اسلاید 23: تغییر مقادیر بیت های پرچمزمانی که دستور RF اجرا می شود ، پس از نمایش بیت های پرچم علامت – چشمک زن قرار می گیرد.در این زمان می توان مقادیر جدیدی به بیت ها اختصاص داددر اینجا مقدار NC را به CY تغییر می دهیمwww.SoftGozar.Com
اسلاید 24: فرمان Gاین فرمان باعث اجرای برنامه اسمبلی درون حافظه می شودشکل کلی G <=آدرس شروع> <آدرس توقف>اولین آدرس که با علامت = شروع می شود به DEBUG می گوید که از چه آدرسی شروع به اجرای برنامه کنداگر تنها یک عدد جلوی G نوشته شود ، دستورات تا زمانی ادامه دارد که برنامه خود به نحوی کار خود را به پایان برسانداگر دستوری برای پایان دادن به کار وجود نداشته باشد ، اجرای برنامه متوقف نخواهد شد و کامپیوتر قفل می کند.علامت مساوی
اسلاید 25: در ضمن این فرمان وضعیت ثبات ها در پایان اجرای دستورات را نیز نشان خواهد داد.همچنین در سطر آخر ، دستور زبان اسمبلی که بعدا باید اجرا شود ، همراه با ترجمه آن به زبان ماشین را ، نیز نمایش می دهد.
اسلاید 26: مثال کلیکاربرد دستورات A,U,R,Gوارد کردن برنامه در حافظه با فرمان A100MOV AX,1MOV BX,2MOV CX,3ADD AX,BXADD AX,CXINT 3
اسلاید 27: روند کارنوشتن برنامه با دستور AUnassemble کردن برنامه با فرمان U 100 10Dنشان دادن محتویات ثبات ها با فرمان Rاجرای برنامه با دستور Gwww.SoftGozar.Com
اسلاید 28: فرمان Tباعث اجرای خط به خط دستورات می شودT <=آدرس شروع> <تعداد دستورات>عدد اول آدرس اولین دستور شروع است و دومی تعداد دستوراتی است که باید اجرا شود.با اجرای هر دستور ، محتویات ثبات ها و بیت های پرچم نمایش داده می شوددر صورتی که تعداد دستورات ذکر نشود تعداد دستور را یک فرض خواهد کرد.
اسلاید 29: مثالاجرای برنامه با دستور TMOV AX,1MOV BX,2MOV CX,3ADD AX,BXADD AX,CXINT 3
اسلاید 30: فرمان E(ENTER)جهت بررسی و تغییر محتویات یک خانه می باشد.شکل کلی این فرمانE <آدرس>مثالE 120اگر بخواهیم مقدار جدیدی مثلا 20 را وارد کنیم پس از ورود عدد کلید ENTER را فشار می دهیمwww.SoftGozar.Com
اسلاید 31: فرمان F(FILL)برای ذخیره داده ای در ناحیه خاصی از حافظه به کار برده می شودF <آدرس شروع> <آدرس پایان> <داده ها>مثلا اگر بخواهیم از آدرس 100تا 106 را با مقدار 23 پر کنیم.F 100 106 23
اسلاید 32: فرمان D(DUMP)این فرمان باعث می شود که محتویات خانه های حافظه به صورت کد هگزادسیمال نمایش داده شودعلاوه بر این حروف و ارقامی که کد های اسکی آن ها قابل نمایش روی مانیتور هستند ، سمت راست مانیتور نمایش داده می شونداگر آدرس انتهای را نگذاریم محتوای 128 بایت خانه حافظه نمایش داده می شوداگر کدهای اسکی قابل نمایش نباشند در سمت راست نقطه نمایش داده خواهد شد
اسلاید 33: مثالwww.SoftGozar.Com
اسلاید 34: فرمان Wفرمان نوشتن بر روی دیسکابتدا توسط فرمان N به برنامه نامی نسبت می دهیم و سپس توسط فرمان W آن را دخیره می کنیمفقط برنامه های با پسوند .COM را می توان به این طریق ذخیره نمود.
اسلاید 35: فرمان های ورودی و خروجیبا فرمان ها ی ورودی و خروجی می توان اطلاعات را از پورت ها خواند یا در پورت ها نوشت .فرمان I (برای خواندن یک بایت اطلاعات پورت ها )-I <شماره پورت>www.SoftGozar.Com
اسلاید 36: مثال) پورت مربوط به وضعیت چراغ های روی صفحه کلید 417 است-I 417که کامپیوتر عدد 20H را روی مانیتور می نویسد یعنی :شماره بیت : 7 6 5 4 3 2 1 0مقدار بیت : 0 0 1 0 0 0 0 0 4 SCROLL LOCK5 NUM LUCK6 CAPSLOCKwww.SoftGozar.Com
اسلاید 37: فرمان خروجی Oبرای فرستادن اطلاعات بر روی پورتO <شماره پورت> <مقدار جدید>مثال( فرمان اول باعث می شود بلند گو کامپیوتر یک سوت ممتد بکشد و فرمان دوم باعث قطع صدای بلندگو می شود -O 61 4F-O 61 4Ewww.SoftGozar.Com
اسلاید 38: مثال) گرفتن تاریخ از سیستمMOV AH,2AHINT 21Hبا اجرای دستور فوق مقادیر تاریخ امروز در ثبات ها قرار می گیردشماره 1 یعنی دوشنبه AL=1 َچون به صورت هگزا است پس سال برابر 2006 می باشد CX=7D6ماه یازدهم میلادی یعنی نوامبرDH=0B14 هگزا به صورت دهدهی برابر 20 می شود DL=14بنابراین تاریخ برابر دوشنبه 20 نوامبر 2006 می باشد.www.SoftGozar.Com
اسلاید 39: نتیجهAL روز هفته CX سالDH ماهDL روزwww.SoftGozar.Com
اسلاید 40: مرجع : زبان ماشین و اسمبلی دکتر حسن سید رضیwww.SoftGozar.Com
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.