ورود

View Full Version : سوال: چاپ مربع



saber1
شنبه 12 اردیبهشت 1394, 02:07 صبح
سلام
میخوام با حروف A تا Z تو وسط صفحه مانیتور یه مربع چاپ کنم که داخلشم با حروف 0 و 1 پر بشه، یه سری اطلاعات دارم، مثلا از وقفه 2 سرویس 10 باید واسه جابجایی بین سطر و ستون استفاده کنم یا از وقفه 9 سرویس 21 واسه چاپ. واسه چاپ حروفم تو دیتا سگمنت یه متغیر تعریف میکنم و تو یه cx میگم که از کد اسکی 65 یا 97 تا 26 کارکتر به بعد رو چاپ کنه که تا Z چاپ بشه. یه ضلع عمودی و افقی رو تونستم چاپ کنم اما تو جابجاییشو اعداد 0 و 1 وسطش به مشکل برخوردم. امکانش هست راهنماییم کنید. شاید بشه این برنامه رو ساده تر از اون چیزی که من فکر میکنم نوشت!

masoud.8086
شنبه 12 اردیبهشت 1394, 09:40 صبح
سلام
ابتدا باید بدونید که برای کشیدن هر ضلع مربع به یک حلقه نیاز دارید(اما میشه با تعداد کمتری حلقه هم نوشت اما برنامه پیجیده میشه)
که میتونید وقغه int 21 /ah,2 رو داخل حلقه بندازی و هر بار مقدار شمارنده ای که از قبل تعریف کردی رو یک واحد اضافه کنید(منظور برای کشیدن خط افقی هست چون این وقفه خودبه خود مکان نما رو یک واحد به جلو میبرد نیاز به جابه جایی مکان نما نیست) برای خط افقی پایین هم همین طور..اما برای خط عمودی علاوه بر این وقفه باید از وقفه مکان نما int 10h / ah,02 نیز استفاده کرد که هر بار مقدار سطر را کم یا زیاد کنیم. برای پر کردنشم میتونی از همین دو وقفه استفاده کنی(ساده ترین راه) ولی راهای دیگم داره.. موفق باشی

saber1
دوشنبه 14 اردیبهشت 1394, 22:46 عصر
سلام
من برنامه رو نوشتم! فقط 2 تا مشکل دارم.1 این که میخوام به جای فقط 0، یک و صفر چاپ بشه (01010101) و 2 این که وقتی برای چاپ عمودی میگم که بره به سطر و ستون درخواست شده، در اول برنامه فقط حرف اول یعنی A میره! در ضمن چون عمودی توی صفحه جا نمیشد از A تا V گرفتم. اگر برنامه رو اجرا کنید معلومه! کدهای برنامه رو پیوست کردم. ممنون میشم اگر راهنمایی کنید.

masoud.8086
سه شنبه 15 اردیبهشت 1394, 11:05 صبح
سلام مشکل برنامت حل شد فقط به نظر من شما هنوز تو کلیات برنامه نوشتن باید بیشتر کار کنین مخصوصا در قسمت حلقه ها..برنامه به پیوست ارسال میشود موفق باشید..

saber1
سه شنبه 15 اردیبهشت 1394, 13:53 عصر
بله، فرمایش شما درسته. از حلقه ها خوب نمیتونم استفاده کنم. واقعا ازتون ممنونم بابت زحماتتون. اگه بخوام وسط 0 و 1 ها یک پیغامی چاپ بشه( مثلا سطر 12) باید jmp بذارم؟

masoud.8086
سه شنبه 15 اردیبهشت 1394, 17:09 عصر
اول باید ی شرط چک کنید که اگر به سطر 12 رسید به جای اضافه کردن یک سطر دو سطر به مقدار سطر(که فکر کنم x باشه) اضافه بشه. و همچنین از jmp هم استفاده کنید.موفق باشید