تمرین برنامه اسمبلی (ساده)
سلام
برنامه زیر کل صفحه خروجی را از ستاره (*) پر می کند.
myseg segment
assume cs:myseg
b:
mov al,'*'
mov cx,2000
mov ah,0ah
int 10h
mov ah,4ch
int 21h
myseg ends
سوال: برنامه بگونه ای تغییر کند که منتظر کلید بماند و کل صفحه را با کاراکتر وارد شده پر کند،
و در صورتی که کلید ESC زده شود برنامه بسته شود.
راهنمایی: به جای * در برنامه فوق باید از متغیر استفاده کنیم .
وقفه مربوط به خواندن کلید از کاربر:
نقل قول: تمرین برنامه اسمبلی (ساده)
سلام دوستان (راه حل پیدا شد)
1-ابتدا وقفه ای مینوسیم تا برنامه منتظر فشردن کلید بماند
2-کد پویش دکمهesc را با ثبات al مقایسه می کنیم.(کد اسکی دکمه وارد شده در ثبات al ریخته می شود )
3-اگر برابر بودند دستور پرش را میدهیم، تا از برنامه خارج شود.
4-اگر برابر نبودند وقفه مربوط به پر شدن صفحه از کاراکتر را می نویسیم.
myseg segment
assume cs:myseg
a: mov ah,0
int 16h
cmp al,01
je a2
mov cx,2000
mov ah,0ah
int 10h
a2:mov ah,4ch
int 21h
myseg ends