بخشی از پاورپوینت
اسلاید 1 :
اجرای دستورات و برنامه اسمبلی در محیط نرم افزار Debug
اسلاید 2 :
آشنایی با چند دستور اسمبلی و کاربرد آن ها
نکته
اگر در دستور فقط عدد نوشته شود مانند:
MOV BL,12
در این صورت عدد 12 به ثبات BL منتقل می شود. ولی اگر عدد داخل کروشه نوشته شود مثلا [0200] محتوای خانه حافظه ای که آدرس آن ، در سگمنت داده برابر 0200 است در نظر گرفته می شود. به عنوان مثال اگر نوشته شود: MOV BL,[0200]
یعنی محتوای خانه حافظه ای که آدرس آن 0200 است به ثبات BL منتقل شود ، و اگر محتوای خانه حافظه آدرس مذکور ، عدد 25 باشد ، در این صورت عدد 25 به ثبات BL منتقل خواهد شد.
اسلاید 3 :
کاربرد دستورات وقفه
دستور INT : باعث می شود که برنامه شما موقتا قطع شود ، و به برنامه های سیستم عامل ، یا برنامه های BIOS مراجعه شود ، عملیات خواسته شده را انجام دهد ، و دوباره به برنامه شما برگردد.
توجه : تمام مقادیر در مبنای hex هستند.
اسلاید 4 :
تعدادی از سرویس های وقفه
گرفتن تاریخ سیستم
از دستور INT 21H استفاده می شود، به شرطی که قبلا در ثبات AH مقدار 2AH قرار داده شده باشد. یعنی:
MOV AH,2A
INT 21
با اجرای این دستورات تاریخ سیستم در ثبات های زیر قرار میگیرد
روزهای هفته ( 0 برای یکشنبه ، 1 جهت دوشنبه ،2.) AL=
سال ( به صورت هگزا مثلا 07D0=2000 ) = CX
ماه (به صورت هگزا 01 تا 0CH ) = DH
روز (از 01 تا 1F به فرم هگزا) = DL
مثال
اسلاید 5 :
دستور وقفه INT 3
2) پایان اجرای دستورات توسط دستور INT 3
CPU به محض اجرای این دستور متوقف می شود و در صورت لزوم می توان محتویات ثبات ها و خانه های حافظه را برسی کرد.
البته این دستور را می توان برای توقف اجرای دستورات برنامه نیز به کار برد ، در صورتی که از این دستور استفاده نشود ممکن است کامپیوتر قفل کند.
اسلاید 6 :
DEBUG نرم افزار
ابزاری کمکی جهت اجرای دستورات زبان اسمبلی و برای ایجاد ، آزمایش ، اجرا ، تغییر و اشکال یابی برنامه ، به زبان اسمبلی است.
نکته : یکی از مزیت های استفاده از DEBUG ، این است که برنامه مستقیما قابل اجرا بوده ، نیازی به ترجمه ندارد
اسلاید 7 :
مزیت های استفاده از محیط debug
مستقیما به زبان اسمبلی برنامه نوشت و آن را اجرا نمود.
برنامه آماده به زبان اسمبلی را می توان به محیط deubug انتقال داده و آن را آزمایش کرد
برنامه اسمبلی را می توان دستور به دستور اجرا کرد ، و محتوات ثبات ها ، و خانه حافظه را مشاهده و تغییرات لازم را انجام داد.
محتویات حافظه هر سگمنت را می توان دید
می توان تمام دستورات را به زبان اسمبلی و معادل آن را به زبان ماشین نشان داد.
اسلاید 8 :
وارد شدن به محیط debug
کافیست فایل اجرایی این نرم افزار را یعنی debug.exe زا توسط سیستم عامل اجرا کنیم ، در این حالت محیط کاری شبیه به DOS باز می شود با این تفاوت که به جای خط فرمان داس (C:\>) یک علامت تیره(-) ظاهر می شود
اسلاید 9 :
اجرای debug در windows
از start منو run را انتخاب می کنیم
سپس کلمه debug را در run تایپ کرده دکمه enter را فشار می دهیم
RUN
START MENU
DEBUG
اسلاید 10 :
خارج شدن از محیط DEBUG
نکته: تمام دستورات debug تک حرفی هستند
جهت خارج شدن از محیط DEBUG از فرمان Q استفاده می کنیم ، که این فرمان باعث می شود به سیستم عامل برگردیم
اسلاید 11 :
فرمان های برنامه DEBUG
فرمان A(Assemble) : این فرمان برای وارد کردن دستورات زبان اسمبلی در حافظه ، و ترجمه آن هاست.
شکل کلی این فرمان به صورت :
<آدرس شروع> A
می باشد که این آدرس ، آدرس شروع خانه حافظه ای در سگمنت کد است که ما می خواهیم دستور از آن آدرس به بعد نوشته شود
(چون سیستم عامل به حافظه ای با افست آدرس 00 تا FF برای اطلاعات خود نیاز دارد ، لذا نرم افزار debug ، به عنوان پیش فرض از آدرس 100H برنامه را اجرا می کند.)
اسلاید 12 :
پس از وارد کردن A100 دو عدد چهار رقمی ظاهر می شود که با یک علامت : از هم جدا شده اند مانند :
-A 100
13BC:0100
عدد سمت چپ ، شماره سگمنت یعنی CS=13BC است و شماره سمت راست ، شماره افست خانه حافظه یعنی IP=100 می باشد. پس از دیدن این اعداد دستورات اسمبلی را وارد می کنیم. پس از هر دستور دکمه ENTER را می زنیم.
وقتی که دستورات به پایان رسید یک بار ، بدون نوشتن دستوری ، دکمه ENTER را فشار می دهیم تا کار ورود دستورات اسمبلی به پایان رسد.
اسلاید 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
این نام به برنامه اختصاص داده می شود
اسلاید 15 :
فرمانU
دستور U (Un assemble) باعث می شود که دستوراتی که به زبان ماشین در حافظه قرار دارند ، به زبان اسمبلی برگردانده شود
شکل کلی فرمان
U <آدرس شروع> <آدرس پایان>
اسلاید 16 :
مثال
اگر بخواهیم از دستور 100H تا 104H را به صورت اسمبلی ببینیم
U 100 104
نتیجه:
اسلاید 17 :
اگر مقابل فرمان U شماره ای نگذاریم ، محتویات حافظه از CS:100 تا CS:120 را که 32 بایت می شود به صورت دستورات اسمبلی و معادل آن ها را به صورت دستورات زبان ماشین نشان می دهد
دستورات زبان اسمبلی
دستورات زبان ماشین
اسلاید 18 :
فرمان R
R (Register)
این فرمان محتوای ثبات ها را نمایش می دهد ، علاوه بر این وضعیت بیت های پرچم را نشان می دهد
R [نام ثبات]
اگر نام ثبات ذکر نشود ، تمامی ثبات ها را روی مانیتور نمایش می دهد
اسلاید 19 :
مثال
-R
توجه: وضعیت بیت های پرچم به صورت NV UP .. نوشته شده است.
اسلاید 20 :
ثبات پرچم دارای وضعیت های زیر می باشد