עמוד:261

7 . 3 . 3 שימוש במחסנית למנגנון ביצוע פרוצדורות כדי לחזור בצורה תקינה מן הפרוצדורה לתכנית שקראה לה , חייב המעבד לשמור את תוכן האוגר IP לפני הקריאה , ולשחזר אותו בעת החזרה מהפרוצדורה . שמירה זו של אוגר IP ושחזורו נעשים באמצעות דחיפת נתון למחסנית ( בזמן קריאה לפרוצדורה ) ושליפתו ממנה ( בזמן ביצוע הוראת החזרה . ( הכתובת הנשמרת במחסנית נקראת "כתובת החזרה" 8086-3 . ( address Return ) קיימים שני סוגים של קריאות לפרוצדורה : קריאה לפרוצדורה קרובה ( Near routine ) וקריאה לפרוצדורה רחוקה . ( Far routine ) " פרוצדורה קרובה" היא פרוצדורה המצויה במקטע הקוד הנוכחי . בתוך המקטע הזה אין הגבלה על מיקומה של הפרוצדורה או על מרחק ההתחלה שלה מן ה 8 : 1 ? - כ , < לכן , בקפיצה לפרוצדורה , צריך ה8086- לשנות רק את ערכו של האוגר , IP ולקבוע בו את הכתובת היחסית של הפרוצדורה . כדי שיוכל לחזור אל התכנית בסיום ביצוע הפרוצדורה , יש לשמור את כתובת החזרה , כלומר את הערך של האוגר . IP '' פרוצדורה רחוקה '' היא פרוצדורה הנמצאת במקטע קוד אחר , לכן , כאשר קוראים לפרוצדורה רחוקה , יש לשמור במחסנית שתי כתובות : את תוכן אוגר מקטע הקוד CS ( שמכיל את כתובת מקטע הקוד ) ואת תוכן אוגר IP ( הכתובת אליה יש לחזור , יחסית לתחילת מקטע הקוד , ( ולאחר מכן צריך לקבוע את הכתובות החדשות שבאוגר מקטע הקוד ואוגר IP בהתאם לכתובת מקטע הקוד החדש ומיקום הפרוצדורה בו . בנוסף , יש לעדן את כתובת אוגר CS ואוגר IP בזמן החזרה מהפרוצדורה , ולהתאימן לכתובת של ההוראה הבאה בתכנית , אחרי ההוראה שזימנה את הפרוצדורה . בספר זה נציג רק את השימוש בפרוצדורה קרובה . דוגמה 7 . 3 נדגים כיצד אפשר לבצע את התכנית שהוצגה בדוגמה 7 . 1 תוך כדי שימוש במחסנית לניהול מנגנון הזימון והחזרה לפרוצדורה וממנה ; לשם כך נשתמש במודל לוגי שבו נציג את מצב הזיכרון ומצב האוגרים המושפעים מביצוע התכנית . באמצעות מודל זה נציג שלושה שלבים לפיהם תבוצע התכנית : לאחר טעינת התכנית , לאחר הקריאה לפרוצדורה ולאחר סיום הפרוצדורה .

מטח : המרכז לטכנולוגיה חינוכית


לצפייה מיטבית ורציפה בכותר