PDA

View Full Version : تمرین برنامه اسمبلی (ساده)



خندان2
شنبه 08 خرداد 1389, 09:09 صبح
سلام
برنامه زیر کل صفحه خروجی را از ستاره (*) پر می کند.

myseg segment
assume cs:myseg
b:
mov al,'*'
mov cx,2000
mov ah,0ah
int 10h
mov ah,4ch
int 21h
myseg ends

سوال: برنامه بگونه ای تغییر کند که منتظر کلید بماند و کل صفحه را با کاراکتر وارد شده پر کند،
و در صورتی که کلید ESC زده شود برنامه بسته شود.

راهنمایی: به جای * در برنامه فوق باید از متغیر استفاده کنیم .

وقفه مربوط به خواندن کلید از کاربر:

mov ah,0
int 16h

خندان2
شنبه 08 خرداد 1389, 19:35 عصر
سلام دوستان (راه حل پیدا شد)
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