ABA


"עזרה באסמבלי...תודה גדולה לעוזרים!"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #11898 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 11898
zlmn

   16:48   09.03.05   
אל הפורום  
  עזרה באסמבלי...תודה גדולה לעוזרים!  
 
   ערכתי לאחרונה בתאריך 09.03.05 בשעה 16:49 בברכה, zlmn
 
אני חייב עזרה...יש לי מחר מבחן באסמבלי ואני לא יודע כלום כי המורה שלנו לא יודע ללמד...מישהו יכול לעזור לי קצת ואם יש אז איזה אתר טוב וקצר שאני יוכל לקלוט את החומר....יש לי קצת ידע מהכיתה אבל בסיסי בלבד... ואני לא היחיד כמובן שלא מבין את זה אצלנו
שוב תודה לכל העוזרים...!!!


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  תביא שאלות ספציפיות , נושאים דני15  09.03.05 17:10 1
     אז ככה... zlmn 09.03.05 17:44 2
         זה שבמצב כזה אתה מושך עד ליום האחרון זה לא טוב דני15  09.03.05 18:42 3
             תודה zlmn 09.03.05 19:12 4
                 עשית רושם שאתה בכלל לא יודע כלום דני15  09.03.05 19:23 5
                     פעולות חשבוניות... (ל''ת) zlmn 09.03.05 19:40 6
                         מכתב דני15  09.03.05 20:12 7

       
דני15 
חבר מתאריך 3.8.02
47437 הודעות, 8 פידבק
   17:10   09.03.05   
אל הפורום  
  1. תביא שאלות ספציפיות , נושאים  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
zlmn

   17:44   09.03.05   
אל הפורום  
  2. אז ככה...  
בתגובה להודעה מספר 1
 
   ערכתי לאחרונה בתאריך 09.03.05 בשעה 17:45 בברכה, zlmn
 
קודם כל תודה...
החומר בעיקרון זה כל מה שלמדנו מתחילת שנה...אז זה הבסיס
mov int dec וכל אלה רק שעכשיו יש עוד כל מיני דברים
פעולות חשבוניות שאין לי מושג איך עושים את זה...
תת תוכנית שגם את זה אני לא יודע...
לולאות...
עכשיו אני לא מבין כל כך את כל הרעיון הזה של הדגלים
וגם לא ממש את האוגרים...אני ממש אשמח לקצת עזרה
(ואם בא לך לעזור לי בכמה שאלות באיי סי?)

ואלה כמה תוכניות אחרונות שלמדנו :
(השאלות)

* תוכנית שמחברת שני מספרים בני 24 סיביות כל אחד
1. 2000,2001,2002
2. 2003,2004,2005
2006 - > תוצאה
זאת נחשבת התוכנית הכי מסובכת שיש לנו כי היא האחרונה שלמדנו...

* (תת תוכנית)
כתוב תוכנית הקולטת מ פורט 379h מספר המייצג את מספר הנתונים שיש לבדוק,
התוכנית תקרא לתת תוכנית בתבדוק כמה "1" יש בקטע שגודלו נקלט המתחיל בכתובת 1000h ?

תודה על העזרה!!! וזה קשה בכלל?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
דני15 
חבר מתאריך 3.8.02
47437 הודעות, 8 פידבק
   18:42   09.03.05   
אל הפורום  
  3. זה שבמצב כזה אתה מושך עד ליום האחרון זה לא טוב  
בתגובה להודעה מספר 2
 
   ערכתי לאחרונה בתאריך 09.03.05 בשעה 18:45 בברכה, דני15
 
וקשה לי להאמין שאפשר לעשות משהו. אבל אני אנסה
בטח כבר שמעת שבאסמבלר אין משתנים כפי שלמדת בעבר כיוון שאסמבלי היא שפה פרימטיבית והקרובה ביותר לשפת מכונה. בעזרת אסמבלי אפשר לגשת ישירות לזיכרון. בזכרון יש לנו אוגרים בני 16 סיביות. 4 אוגרים עיקריים לשימוש כללי AX BX CX DX.
16 סיביות = 16 ספרות בינריות. בינרי = בסיס 2, כל סיבית 0 או 1, וככה זה מיוצג במחשב. אפשר באסמבלי להשתמש בבסיסים אחרים, בדרך כלל הקסדצימלי אבל חשוב להבין איך הנתונים באמת מיוצגים במחשב ולשאלה האחרונה שלך חובה להבין זאת. בוודאי כבר עסקתם בהמרות. כדי להמיר מס' בינרי לעשרוני(זה שאנחנו משתמשים בו) יש לקחת כל ספרה לפי הסדר מימין ולהכפיל אותה ב-2 בחזקת המיקום(מתחיל ב-0) ולחבר את התוצאות, 2 כי זה בסיס בינרי 2.

בכדי להמיר מבסיס עשרוני לבסיס כלשהו נחלק את המספר בבסיס, נקח את השאריות, עד שנקבל 0 והמספר יקרא הפוך. כל אוגר שלם בן 16 סיביות מחולק לחצאי אוגרים בני 8 סיביות . בית עליון ובית תחתון. AX מחולק ל-AH
(A high) ו-AL
(A low)
BX מחולק ל-bh ול-bl
cx ל-ch ו-cl
dx ל-dh ו-dl

בכל פקודה באסמבלי חייבת להיות התאמה בגודל האופרנדים. הפקודה MOV מעתיקה לאופרנד הימני את ערך האופרנד השמאלי. לדוגמא mov ax,2h. ייכנס 2 בבסיס הקסדצימלי לאוגר ax בן 16 סיביות. פקודה כגון זו אסורה : mov ah,bx כי זו הכנסה של אוגר שלם BX בן 16 סיביות לתוך חצי אוגר AH שהוא חלק מ-AX. אגב - כל 4 ספרות בינריות זו ספרה הקסדצימלית אחת. זה אומר שאם נכתוב mov ax,23ffh בעצם מילינו את כל האוגר AX כי יש 4 ספרות וכל אחת 4 סיביות בבינרי סה"כ 16. במקרה זה 23 יכנס ל-AH ו-ff ל-AL.


הפקודה ADD מוסיפה מס' כלשהו לאופרנד היעד. לדוגמא אם AX ערכו 2 ונעשה add ax,3 כעת ערכו יהיה 5. הפקודה DEC מחסירה באותו אופן.

אוגר מאוד חשוב שציינת הוא אוגר הדגלים. אוגר הדגלים הוא אוגר בן 16 סיביות כאשר רק 9 מהן בשימוש. כשמו כן הוא, הוא בא לסמן מצבים שונים בפעולות אריטמטיות שונות. דגל אפס zf ערכו 1 כאשר בפעולה האריטמטית האחרונה התוצאה הייתה 0. דגל cf דלוק כאשר בפעולה האריטמטית האחרונה היה נשא(עודף), sf דגל סימן שנדלק כאשר המס' שלילי, ויש עוד דגלים שאינני זוכר וסביר להניח שכתוב לך עליהם במחברת(אם כתבת בשיעור) ורצוי גם שיהיה לך ספר.
פקודה מאוד שימושית היא הפקודה CMP שעובדת על הדגלים וכשמה כן היא compare באה להשוות. קיימות מס' פקודות להסתעפות(קפיצה), שבאות בדרך כלל לאחר הפקודה CMP ומתבצעות בהתאם לדגלים. למשל אם נכתוב cmp ax,bx ולאחר מכן je שזה jump equal כלומר קפוץ אם שווה, אם תוכן AX שווה לתוכן BX זה יקפוץ לתוית המבוקשת.


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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
zlmn

   19:12   09.03.05   
אל הפורום  
  4. תודה  
בתגובה להודעה מספר 3
 
   ערכתי לאחרונה בתאריך 09.03.05 בשעה 19:20 בברכה, zlmn
 
וואי תודה רבה לך!!!
ואני אשמח לעוד הסברים את הדברים שהסברת עכשיו אני פחות או יותר יודע...
אבל זה עזר לי מאוד


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
דני15 
חבר מתאריך 3.8.02
47437 הודעות, 8 פידבק
   19:23   09.03.05   
אל הפורום  
  5. עשית רושם שאתה בכלל לא יודע כלום  
בתגובה להודעה מספר 4
 
   לא יודע פעולות חשבוניות ופעולות בסיסיות..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
zlmn

   19:40   09.03.05   
אל הפורום  
  6. פעולות חשבוניות... (ל''ת)  
בתגובה להודעה מספר 5
 
   ערכתי לאחרונה בתאריך 09.03.05 בשעה 19:43 בברכה, zlmn
 
הוא עשה כותרת (המורה) שיעור אחרון וכתב "פעולות חשבוניות"
ונתן לכתוב ת'תכונית הראשונה שרשמתי לך...לזה התכוונתי...
אבל עדיין זה עזר לי מה שכתבת לי תודה!
אני פשוט לא יודע טוב את הסדר של הפעולות בכדי ליצור תוכנית ומזה אומר דגל עולה / יורד מה כל דבר אומר?
ואיך יודעים באיזה אוגר להשתמש? ---- את זה באמת לא הבנתי!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
דני15 
חבר מתאריך 3.8.02
47437 הודעות, 8 פידבק
   20:12   09.03.05   
אל הפורום  
  7. מכתב  
בתגובה להודעה מספר 6
 
   השאלה הראשונה לא ברורה לי.
דגל הוא תמיד 0 אלא אם כן מבצעים פעולה כלשהי(חיבור,חיסור,הזזה,חילוק).
באיזה אוגר להשתמש? אתה בוחר את האוגרים לפי רצונך. אסור לך להשתמש באוגר SP שהוא מצביע למחסנית או IP וכאלה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net