ايران ويج

نسخه‌ی کامل: صفحه نمایش تو در تو
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام

چطور میتونم با استفاده از تابع 06h با وقفه 10h شکلی که پیوست کردم رو با استفاده از حلقه انجام بدم؟

توضیحات:
سایز هر صفحه با صفحه دیگر باید به اندازه 2 فاصله داشته باشد
هر مستطیل یک رنگ خاص
و آخری که به صورت مربع میشه 2x2 باشد

لطفا راهنمایی کنید

با تشکر
سلام:
منظور شما از راهنمایی چیست؟
برنامه ای که خواسته بودید را نوشتم.
اون چند خط اون باید داخل سگمنت داده تعریف شوند.
فقط مربع آخر را خودم دستی نوشتم و در حلقه نیست؟
اگر شما می خواهید مربع آخر را در حلقه باشد باید چهار تا مقایسه انجام دهید تا مربع آخر هم در حلقه باشد.
باز هم اگر به هر مشکلی برخورد کردید بگویید تا درستش کنم.
کد:
Y1 DB ?   ;SEGMENT 'DATA'
      Y2 DB ?   ;SEGMENT 'DATA'
      
      X1 DB ?   ;SEGMENT 'DATA'
      X2 DB ?   ;SEGMENT 'DATA'
      
      CONT DB ? ;SEGMENT 'DATA'
      
      COLOR DB ?;SEGMENT 'DATA'
      
      
      
      
      
      
      MOV  AH,02H
      MOV  DL,'A'  
      INT  21H
      
      MOV Y1,2
      MOV Y2,2
      
      MOV X1,22
      MOV X2,77
      
      MOV COLOR,10H
      
      MOV CONT,1
      
      
      L1:
      
      CMP CONT,4
      JG L2:
      
      MOV CH,Y1;+
      MOV CL,Y2;+
      MOV DH,X1;-
      MOV DL,X2;-
      MOV BH,COLOR
      MOV AH,06H
      INT 10H
      
      ADD Y1,2
      ADD Y2,2
      
      SUB X1,2
      SUB X2,2
      
      ADD COLOR,10H
      
      INC CONT
      
      JMP L1
  
      
      L2:
      
      
      MOV CH,9;+
      MOV CL,35;+
      MOV DH,15;-
      MOV DL,45;-
      MOV BH,50H
      MOV AH,06H
      INT 10H

سلام:
آشنایی بیشتر با وقفه پاک کردن صفحه نمایش.
وقفه پاك كردن صفحه نمايش : براي اينكار از وقفه شماره (10H) و تابع شماره (06H) استفاده مي كنيم.
شماره وقفه : 10 H
شماره تابع 06H
تنظيم پارامترها :
CH : شماره سطر گوشه سمت چپ بالا
CL: شماره ستون گوشه سمت چپ بالا
DH : شماره سطر گوشه سمت راست پايين
DL : شماره ستون گوشه سمت راست پايين
AL : تعداد خطوط محدوده
AH: شماره تابع
BH: صفت نمايشي محدوده
مرسی

من میخوام همینطور کوچیک بشن تا به آخری برسه

و آخری طوری در بیاد که بشه 2x2 یعنی بیش از اون تعدادی که در شکل کشیدم
سلام:
باید شکل را مربع ای در نظر بگیری .
25*25 این اندازه ای است که من در نظر گرفتم اگر خواستی می توانی این اندازه ها را تغییر بدی ولی باید همه با هم برابر باشد.
اگر انداز از 25*25 بیشتر شود باید از فرمول های جدول رنگ استفاده کنی منظورم ترکیب رنگ است. که باید در مبنای 16 باشند استفاده کنی.
کد:
Y DB ?   ;SEGMENT 'DATA'
      X DB ?   ;SEGMENT 'DATA'
      
      CONT DB ? ;SEGMENT 'DATA'
      
      COLOR DB ?;SEGMENT 'DATA'
      
      
      
    
      MOV Y,0
      MOV X,25
      
      MOV COLOR,10H
      
      MOV CONT,1
      
      MOV  AH,02H
      MOV  DL,'A'  
      INT  21H
      
      L1:
      
      CMP CONT,6
      JG L2
      
      INC CONT
      
      ADD Y,2

      SUB X,2
    
      ADD COLOR,10H
      
      MOV CH,Y;+
      MOV CL,Y;+
      MOV DH,X;-
      MOV DL,X;-
      MOV BH,COLOR
      MOV AH,06H
      INT 10H
      
      JMP L1
      
      L2:
سلام

مرسی

ولی چرا مربع ها واسه من کامل نیست؟؟

صفحه رو هم بزرگ کردم بازم نشد
سلام:
باید اندازه پنجره شما 25*80 باشد.
فکر کنم که درست میشه.
اگر هم درست نشود خودتون به نسبت پنجره تون اندازه ها را تغییر بدهید.
این سایز رو کجا باید قرار بدم؟
سلام :
شما اگر همان زبان اسمبلی که من برای دانلود گذاشتم را دانلود کنید.
برای همیشه مشکلات شما حل می شود.
دانلود زبان اسمبلی:
http://www.iranled.com/forum/attachment.php?aid=4862
سلام

حالا اگه بخوام مثال اولی رو حدود 40 تا کنم چکار باید کرد؟
افقی 0 تا 79 هست که میشه 80 تا
عمودی 0 تا 24 که میشه 25 تا

اگه 40 تا نشه 12 تا باشه طوری که آخری 2x2 باشه

تشکر
سلام:
دوست عزیز شکل شما مربع است یعنی هر چهار قسمت یک عدد مساوی دارند.
پس انقدر عدد را کم و یا زیاد کن تا درست شود.؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
خوب همینکارو کردم ولی نشد.................
صفحه‌ها: 1 2