در اين بخش مي‌توانيد به مباحث مربوط به انواع زبان هاي برنامه نويسي بپردازيد
Administrator

Administrator



نماد کاربر
پست ها

15465

تشکر کرده: 10175 مرتبه
تشکر شده: 3917 مرتبه
تاريخ عضويت

جمعه 7 بهمن 1384 19:51

آرشيو سپاس: 30251 مرتبه در 5981 پست

برنامه Debug

توسط Mahdi1944 » سه شنبه 5 اردیبهشت 1385 22:45

:: قسمت اول ::

Debug برنامه اي جهت اشكال زدايي و انجام تغييرات در برنامه و حتي اجراي آن است . اين برنامه براي كاربران و برنامه نويسان حرفه اي اسمبلي كاربرد فراواني دارد. برنامه Debug داراي قابليتهاي جالب و مفيدي است كه عبارتند از :

● تست كردن برنامه در جهت رفع اشكالات و اجراي آن
● انتقال برنامه به حافظه سيستم جهت مشاهده محتويات برنامه و انجام تغييرات
● اجراي برنامه
● اجراي فرمانهاي DOS
● نوشتن برنامه اسمبلي و اجراي آن به طور مستقيم

كاربرد آخر ، از مهمترين مزاياي اين برنامه است . چراكه بوسيله آن مي توان برنامه نوشته شده را مستقيم اجرا نمود و نيازي به كامپايلر زبان اسمبلي از قبيل MASM و TASM نمي باشد.

كار كردن با اعداد مبناي 16 امريست كه براي برنامه نويسان اسمبلي كاملا عادي است . براي استفاده از Debug نيز مي بايست تا حدي از فرآيندهاي محاسباتي در مبناي 16 آگاه باشيد.

روش اجرا :
     
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 



پارامتر ها در اين برنامه آرگومانهايي هستند كه از طريق خط فرمان بايد به برنامه منتقل شوند .

نكته ديگري كه بايد در زمينه استفاده از اين برنامه بدانيد ، اين است كه پس از اجراي Debug عملياتي انجام مي شود . از آنجايي كه ممكن است اين تغييرات براي شما مهم باشد و در كاري كه انجام مي دهيد تاثير بگذارد ، آنها را نام مي بريم :

● ثباتهاي ناحيه CS , DS , ES , SS به آدرس اولين ناحيه بعد از برنامه Debug اشاره مي كنند.
● ثبات اشاره گر دستور يعني IP به آدرس 100H اشاره مي كند.
● ثبات اشاره گر پشته به آخرين ناحيه يا قسمت موقت فايل Command.com اشاره مي كند.
● محتواي ساير ثباتهاي عمومي صفر خواهد بود و ثبات فلگ شامل محتويات ذيل خواهد بود :
     
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 
زندگي صحنه يکتاي هنرمندي ماست     هرکسي نغمه خود خواند و از صحنه رود
صحنه پيوسته به جاست     خرم آن نغمه که مردم بسپارند به ياد


 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

لطفا سوالات فني را فقط در خود انجمن مطرح بفرماييد، به اين سوالات در PM پاسخ داده نخواهد شد

کاربران زیر از شما کاربر محترم جناب Mahdi1944 تشکر کرده اند:
sinaset

Administrator

Administrator



نماد کاربر
پست ها

15465

تشکر کرده: 10175 مرتبه
تشکر شده: 3917 مرتبه
تاريخ عضويت

جمعه 7 بهمن 1384 19:51

آرشيو سپاس: 30251 مرتبه در 5981 پست

توسط Mahdi1944 » سه شنبه 5 اردیبهشت 1385 22:47

:: قسمت دوم ::

در اين بخش از آموزش برنامه Debug به بررسي تعدادي از فرامين اين برنامه مي پردازيم كه لازم است بدانيد اين دستورات يك كاراكتري هستند . يك كاراكتري بودن اين دستورات نيز به سرعت عمل كمك مي كند.

در ابتدا اجازه دهيد علامت هاي به كار برده شده در اين درس را معرفي كنيم.
<> : چنانچه عبارتي در بين اين علامت قرار گيرد ، مي بايست حتما در فرمان قرار گيرد .
[] : چنانچه عبارتي در بين اين علامت قرار گيرد ، مي تواند در فرمان شركت نكند .
لازم به ذكر است كه خود اين علامت ها را نبايد در برنامه بكار ببريد . علامات گفته شده فقط براي بيان نحوه به كار گيري فرمان ، در جلوي آن درج شده اند.

● دستور R :
(Register)

اين فرمان براي نمايش محتويات ثباتها استفاده مي شود .شكل فرمان به صورت زير است :
     
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 



اسم ثبات در اين فرمان تعيين مي كند كه مقدار چه ثباتي بايد به نمايش درآيد . در صورتي كه اين نام ذكر نشود محتويات كليه ثباتها نمايش داده مي شود كه البته اين مقادير در مبناي 16 ظاهر مي شوند .
پس از پايان گزارش اين فرمان ، علامت ":" ظاهر مي شود كه در واقع در اين لحظه سيستم منتظر دريافت محتويات جديد ثباتها مي باشد. در صورتي كه مايل به وارد كردن مقادير جديد نيستيد ، كليد Enter را بزنيد تا ثباتها محتواي قبلي خود را حفظ كنند . در اين قسمت چنانچه يك مقدار 1-4 رقمي وارد كنيد ( البته در مبناي 16) وسپس كليد Enter را بزنيد ، اين مقدار به ثبات نسبت داده مي شود.
اسامي ثباتهايي كه اين فرمان مقدار آنها را گزارش مي دهد :
     
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 



● دستور H :
(Hexarithmetic)

همانطور كه در بخش اول نيز گفته شد ، محاسبات و گزارش هاي برنامه Debug در مبناي 16 هستند و كاربر مي بايست تا حدي با اين مبنا آشنا باشد . از آنجايي كه كار كردن با اين مبنا كمي دشوار است ، دستور H براي عمليات جمع و تفريق اعداد مبناي 16 در اين برنامه گنجانده شده است . شكل فرمان به صورت زير است :
     
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 



هر دو مقدار اين فرمان در مبناي 16 هستند و فرمان H جمع و تفريق اين دو مقدار را به ترتيب از چپ به راست نمايش مي دهد .

● دستور N :
(Name)

از اين فرمان براي انجام دو عمل زير مي توان اسفاده نمود :

1- انتخاب يك فايل جهت انجام عمليات بر روي آن كه با ساير فرامين برنامه انجام مي شوند مثل انتقال به حافظه.

2- انتخاب پارامترهايي براي فايل انتخاب شده قبلي كه در حال حاضر برنامه Debug با آن كار مي كند.

دو شكل استفاده از فرمان به ترتيب عبارتند از :
     
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 



مسير گفته شده در فرمان ، مسير فايل را مشخص مي كند كه مي تواند استفاده نشود. در اين صورت مسير جاري منظور مي شود.
براي فهم بيشتر اين مطلب به مثال زير توجه كنيد:
     
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 



فرمان اول سبب مي شود فايل MyAsm.exe جهت انجام عمليات ، انتخاب شود و فرمان دوم دو فايل را به عنوان پارامتر هايي براي انجام عمليات ، براي MyAsm.exe معرفي مي كند . يعني اين دو فايل پارامتر هاي MyAsm.exe هستند.

● دستور Q :
(Quit)

اين فرمان براي خروج از برنامه Debug ، بدون ثبت تغييرات اعمال شده به فايل مورد نظر ، به كار مي رود . شكل فرمان به صورت زير است :

Q

براي انتقال محتويات حافظه به فايل نيز از فرمان W استفاده مي شود.
زندگي صحنه يکتاي هنرمندي ماست     هرکسي نغمه خود خواند و از صحنه رود
صحنه پيوسته به جاست     خرم آن نغمه که مردم بسپارند به ياد


 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

لطفا سوالات فني را فقط در خود انجمن مطرح بفرماييد، به اين سوالات در PM پاسخ داده نخواهد شد

کاربران زیر از شما کاربر محترم جناب Mahdi1944 تشکر کرده اند:
sinaset

Old Moderator

Old Moderator



نماد کاربر
پست ها

941

تشکر کرده: 0 مرتبه
تشکر شده: 4 مرتبه
تاريخ عضويت

چهارشنبه 23 فروردین 1385 14:41

محل سکونت

شیراز

آرشيو سپاس: 79 مرتبه در 43 پست

توسط Elahe » يکشنبه 17 اردیبهشت 1385 23:10

Mahdi1944,
مرسي از اطلاعات قوي شما واقعا متشکرم

1 سوال: من ميتونم برنامه اسمبلي بنويسم و ان را به فايل exe تبديل کنم وليdebug کردنشو بلد نيستم با برنامه masm6.11؟؟؟؟؟؟؟؟؟؟؟
:shock:
اگر کسی احساس کند که در زندگیش هیچ اشتباهی را نکرده است، به این معنی است که هیچ تلاشی در زندگی خود نکرده.

If someone feels that they had never made a mistake in their life, then it means they had never tried a new thing in their life

Administrator

Administrator



نماد کاربر
پست ها

15465

تشکر کرده: 10175 مرتبه
تشکر شده: 3917 مرتبه
تاريخ عضويت

جمعه 7 بهمن 1384 19:51

آرشيو سپاس: 30251 مرتبه در 5981 پست

توسط Mahdi1944 » يکشنبه 17 اردیبهشت 1385 23:17

elahe
خواهش مي‌کنم  :o
در برنامه نويسي اسمبلي سه مرحله داريم
اول نوشتن با يه اديتور و ذخيره اون با پسوند asm
بعد از اون با استفاده از اسمبلر اون رو به فايلهاي obj تبديل مي‌کنيم (obj)
اگر در اين مرحله مشکلي داشته باشه تعداد خطا و خطي که ارور داره رو پايين برنامه مي‌نويسه و با استفاده از يه اديتور مثل edit در خود داس و يا حتي دستور ويرايش از سري con در داش مي‌شه اون رو رفع عيب کرد و دوباره مرحله اسمبل کردن رو تکرار کرد
masm XXX.asm
بعد از اون لينک کردن فايل هست که از ابجکت فايل اجرايي مي‌ساره
اگر منظورتون چيز ديگه‌اي هست بيشتر توضيح بديد
آيا منظورتون debug فايل exe با استفاده از debug هست؟
زندگي صحنه يکتاي هنرمندي ماست     هرکسي نغمه خود خواند و از صحنه رود
صحنه پيوسته به جاست     خرم آن نغمه که مردم بسپارند به ياد


 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

لطفا سوالات فني را فقط در خود انجمن مطرح بفرماييد، به اين سوالات در PM پاسخ داده نخواهد شد

Old Moderator

Old Moderator



نماد کاربر
پست ها

941

تشکر کرده: 0 مرتبه
تشکر شده: 4 مرتبه
تاريخ عضويت

چهارشنبه 23 فروردین 1385 14:41

محل سکونت

شیراز

آرشيو سپاس: 79 مرتبه در 43 پست

توسط Elahe » يکشنبه 17 اردیبهشت 1385 23:40

Mahdi1944,

اره.منظورم debug فايل exe با استفاده از debug هست؟
اگر کسی احساس کند که در زندگیش هیچ اشتباهی را نکرده است، به این معنی است که هیچ تلاشی در زندگی خود نکرده.

If someone feels that they had never made a mistake in their life, then it means they had never tried a new thing in their life

Administrator

Administrator



نماد کاربر
پست ها

15465

تشکر کرده: 10175 مرتبه
تشکر شده: 3917 مرتبه
تاريخ عضويت

جمعه 7 بهمن 1384 19:51

آرشيو سپاس: 30251 مرتبه در 5981 پست

توسط Mahdi1944 » دوشنبه 18 اردیبهشت 1385 03:23

elahe جان
Debug فايلهاي اجرايي تنها براي اجراي فايلهايي هست که بنا به دلايل مختلف قادر به اجرا در دستگاه مورد نظر نيستند
مثلا در مواقعي که مقادير اوليه ثباتها بنا به دلايلي درست مقدار دهي نشدند و يا به خاطر مشخص نکردن نوع سيستمي که قرار هست برنامه روي اون اجرا بشه برنامه در حالت عادي قادر به اجرا نيست از اون بهره مي‌بريم که در بالا توضيح دادم
عمده‌ي کاربرد debug در مقدار دهي سطح زيرين سيستم مثل بايوس هست و مثلا مي‌شه با استفاده از تعيير پارامترهايي در بايوس باعث شد که پسورد اول سيستم حذف برداشته بشه و از اين قبيل کارها
در حالت عادي و زماني که برنامه ران مي‌شه نيازي به debug نخواهيم داشت
به هر حال اگر مورد خاصي مورد نظرتون هست که فکر مي‌کنيد نياز به debug داره اعلام کنيد تا در صورتي که بتونم جوابتون رو بدم  :o
زندگي صحنه يکتاي هنرمندي ماست     هرکسي نغمه خود خواند و از صحنه رود
صحنه پيوسته به جاست     خرم آن نغمه که مردم بسپارند به ياد


 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  |  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

لطفا سوالات فني را فقط در خود انجمن مطرح بفرماييد، به اين سوالات در PM پاسخ داده نخواهد شد

Old Moderator

Old Moderator



نماد کاربر
پست ها

941

تشکر کرده: 0 مرتبه
تشکر شده: 4 مرتبه
تاريخ عضويت

چهارشنبه 23 فروردین 1385 14:41

محل سکونت

شیراز

آرشيو سپاس: 79 مرتبه در 43 پست

توسط Elahe » دوشنبه 18 اردیبهشت 1385 13:15

Mahdi1944,

ممنون مرسي فهميدم :grin:
اگر کسی احساس کند که در زندگیش هیچ اشتباهی را نکرده است، به این معنی است که هیچ تلاشی در زندگی خود نکرده.

If someone feels that they had never made a mistake in their life, then it means they had never tried a new thing in their life


 


  • موضوعات مشابه
    پاسخ ها
    بازديدها
    آخرين پست

چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون كاربران آنلاين و 1 مهمان