عملکرد دستور
امکان نوشتن کداسمبلي از آدرس مشخص شده در صورت مشخص نکردن آدرس از آدرس موجود در IP بعنوان آدرس شروع استفاده مي شود . در ابتداي کار IP=100 است که همان شروع فايلهاي Com و يا bin مي باشد
براي نمايش / مقداردهي ثبات ها بکار مي رود. در صورتي که بدون پارامتر استفاده شود محتويات کليه ثبات ها را نشان مي دهد اما در صورتي که با نام يک ثبات بکار رود علاوه بر نمايش مقدار فعلي ثبات مورد نظر امکان تغيير محتويات آنرا نيز فراهم مي آورد.
براي مشخص نمودن نام و مسير فايل ورودي / خروجي بکار مي رود .
براي اجراي برنامه تا يک آدرس مشخص بکار مي رود . چنانچه بدون پارامتر بکار رود برنامه را از خط جاري (ip فعلي ) تا انتهاي برنامه اجرا مي کند . G
براي نوشتن برنامه از آدرس h100 به تعداد بايتهاي مشخص شده در ثبات cx بکار مي رود . W
براي خروج از محيط DEBUG بکار مي رود Q
حال با فرض بر اين که شما وارد محيط debug شده ايد مجموعه دستورات لازم براي پياده سازي الگوريتم فوق را در زير مي آوريم .
مرحله 1
با اجراي دستور a وارد مود برنامه نويسي اسمبلي شويد در اين صورت debug با نشان دادن آدرس xxxx:0100 آمادگي خود را براي دريافت دستورات اعلام مي دارد ( در عمل debug بجاي xxxx سگمنت مربوط به برنامه را نشان مي دهد که توجه به اين موضوع اصلاً در اينجا اهميتي ندارد .)
مرحله 2
دستورات زير را با دقت تايپ کرده و در انتهاي هر خط کليد ENTER را فشار دهيد ( مواردي که زير آن خط کشيده شده از طرف نرم افزار نشان داده مي شود اين آدرسها در واقع مشخص کننده طول هر دستور و در نهايت طول برنامه مي باشد) .
کد:
XXXX:100 MOV CL , FF
XXXX:102 MOV AL , CL
XXXX:104 OUT 70 , AL
XXXX:106 MOV AL , 0
XXXX:108 OUT 71 , AL
XXXX:10A LOOP 102
XXXX:10C INT 20
XXXX:10E
(در صورتي که مايل به درک کار دستورات برنامه نمي باشيد به مرحله 3 برويد )
توضيح خط به خط برنامه :
خط اول : يک شمارنده با مقدار 255 در نظر گرفته شده که معادل همان متغير i در الگوريتم است .
خط دوم : al را برابر cl قرار مي دهيم.
خط سوم : محتواي al را به پورت h70 ارسال کرديم (در واقع تنظيم گذرگاه آدرس ) .
خط چهارم : al را برابر صفر قرار مي دهيم .
خط پنجم : محتواي al را به پورت h71 ارسا ل مي کنيم و در واقع داده موجود در al را در آدرسي که قبلاً مشخص کرده ايم مي نويسيم
خط ششم : از آنجا که عمليات مربوط به تنظيم آدرس و نوشتن داده در محل آدرس بايد به تعداد لازم تکرار شود بنايراين از دستور LOOP براي ايجاد يک حلقه با تعداد تکرار مشخص شده در CX استفاده کرديم دستور LOOP 102 باعث مي شود تا برنامه در هربار اجرا يک واحد از مقدار CX کم کرده و در صورت منفي شدن دستور بعدي و در غير اينصورت به آدرس مشخص شده پرش مي کند .در اين برنامه با توجه به مقدار CX خطوط دوم تا پنجم 256 بار اجرا مي شوند .
خط هفتم : اجراي اين وقفه باعث ختم برنامه خواهد شد
مرحله 3
بعد از فشردن کليدENTER درآخرين مرحله مجدداً اعلان DEBUG ظاهر مي شود در اين مرحله چنانچه نمي خواهيد برنامه را ذخيره کنيد در جلوي اعلان
( همان علامت منها ) دستور G را اجرا کنيد تا کليه محتويات CMOS پاک شود. سيستم را RESET نموده و با فشردن کليد DEL وارد ست آپ سيستم شويد و تغييرات لازم را اعمال نماييد . اما در صورتي که تمايل داريد کد برنامه را به صورت يک فايل اجرايي از نوع COM درآوريد مراحل بعدي را انجام دهيد
مرحله 4
با اجراي فرمان R CX در مقابل اعلان DEBUG مقدار ثبات CX را به E تغيير داده و کليد ENTER را فشار دهيد .( دقت داشته باشد که کليه اعداد در DEBUG در مبناي 16 نوشته مي شوند و عدد Eهمان طول برنامه شماست يعني اختلاف 10E – 100 در مبناي 16)
مرحله 5
با اجراي فرمان N CLR_CMOS.COM در جلوي اعلان DEBUG نام CLR_CMOS.COM را براي برنامه خود مشخص کنيد ( به جاي اين نام مي توانيد نام دلخواه خودتان را با پسوند COM جايگزين کنيد )
مرحله 6
با اجراي فرمان W در جلوي اعلان DEBUG تعداد 14 بايت کد نوشته شده در فايلي با نامي که در مرحله قبل مشخص کرده ايد ذخيره خواهد شد .
حال شما داراي يک فايل اجرايي 14 بايتي خواهيد بود که هر وقت بر روي يک کامپيوتر اجرا شود محتويات حافظه CMOS آنرا پاک مي کند .
مرحله 7
در اين مرحله مي توانيد همچون مرحله 3 عمل نموده و يا با اجراي دستور Q از DEBUG خارج شويد و فايلي را که ساخته ايد اجرا نموده و سيستم را RESET کنيد و وارد ست آپ شويد.