נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: עזרה באסמבלר

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
עזרה
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 18 June 2006 בשעה 17:12 | IP רשוּם
ציטוט עזרה

שלום, יש לי פקודה באסמבלר שמנקה את המסך.
האם מישהו יכול להסביר לי מה היא בעצם עושה כדי שהניקוי מסך יתבצע?
למשל מה היא עושה במעבד, במחסנית וכו'

הפקודה:

MOV AH,0
MOV AL,3
INT 10H

תודה מראש לעוזרים
חזרה לתחילת העמוד הצג את כרטיס החבר של עזרה חפש הודעות אחרות של עזרה בקר בדף הבית של עזרה
 
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 19 June 2006 בשעה 11:23 | IP רשוּם
ציטוט אורח

עד כמה שאני מנחש, היא סה"כ שמה את נקודות שחורות/פאטרן(pattern) על כל המסך.
כש ax הוא הפטרן שלך
כשאתה כותב int אתה נכנס לkernel mode ככה שאין הרבה מה לראות בסטאק..
(אבל אתה יכול להריץ חיפוש בגוגל ולגלות יותר מהידע הבסיסי שנתתי לך פה)
חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 19 June 2006 בשעה 21:50 | IP רשוּם
ציטוט אורח

תודה, אבל מה זאת אומרת שהיא שמה נקודות שחורות על כל המסך?

כשאני מריץ את הפקודה הזאת כל הטקסט שהיה קודם נראה כאילו הוא נמחק ואז זה כאילו מקפיץ את המיקום של הסמן חזרה להתחלה מצד שמאל למעלה וכשאני מדפיס טקסט חדש זה מתחיל מההתחלה מצד שמאל למעלה

האם תוכל לעזור לי להבין מה בעצם קורה בתהליך הזה? איך הוא מתבצע?

חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 22 June 2006 בשעה 15:39 | IP רשוּם
ציטוט אורח

אתה מבין בכלל מה עשית בפסיקה הזו ?
כלומר מה משמש פה al ו ah ?
אחד מהם משמש לצבע המסך שיהיה לך והשני למספר הפסיקה,
כשאתה כותב int 10h אתה נכנס לkernel mode ששם זו כבר לא בעיה שלך מה המחשב עושה ומה הוא לא עושה
עקרונית מה שאתה קורא ל"ניקוי מסך" זה סך הכל למלא את המסך בפיקסלים שחורים(או צבע אחר שנבחר) מנק' 0 עד לסוף
למידע עוד יותר חפש בגוגל "asm int" או דברים בסגנון


חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
11010010110
פורומיסט על
פורומיסט על
סמל אישי

הצטרף / הצטרפה: 23 April 2006
משתמש: מנותק/ת
הודעות: 2621
נשלח בתאריך: 23 June 2006 בשעה 00:52 | IP רשוּם
ציטוט 11010010110

מסך הדוס הוא מסך טקסט, ב MS DOS בדרך כלל 80x25 אותיות.
לכל משבצת במסך יש 2 בתים של זיכרון (אולי יותר) בכרטיס
מסך.
המידע ששמור לכל משבצת הוא:
האסקי של האות - 8 ביט
צבע האות - 3 ביט
צבע רקע - 3 ביט
צבע בהיר או כהה - 1 ביט.
אות עומדת או מנצנצת - 1 ביט.

התוצאה של התוכנית היא שהמסך מתמלא בקוד האסקיי של רווח
(או אולי תו אחר שאין לו סימן) וצבע רקע שחור.

סימן האסקי של רווח הוא 20h או 21h (לא זוכר מי מהם) = 32
או 33 בבסיס 10.

שחור זה 0.

מה התוכנית עושה:

int 10h - מעביר ת השליטה על המעבד למערכת הפעלה. היא
רואה את המעבד (או חלק ממנו את זה אני לא יודע בדיוק) כמו
שהתוכנית השאירה אותו.
בפסיקות שאני מכיר מ MS DOS הערך ב AH זה קוד הפעולה
שהתוכנה רוצה מDOS. יכול להיות משהוא אחר. (DOS מוצא את
המספר הזה כשהוא מקבל את המעבד)
לפי המסורת של DOS הערך מ AL זה מידע (התו שהתוכנית ממלאת
איתו את המסך?? אבל נראה לי 3 זה סמל כמו של קלפי משחק)
אבל שוב לא חייב.

נסו לשנות את אחד מהערכים ולראות מה קורה.
חזרה לתחילת העמוד הצג את כרטיס החבר של 11010010110 חפש הודעות אחרות של 11010010110
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה