|
עמוד:271
7 . 5 מימוש משתנים מקומיים משתנים מקומיים הם משתנים שהפרוצדורה מגדירה , לכן הם אינם מוכרים מחוץ לה . משך " מחזור החיים" של משתנים מקומיים הוא כמשך מחזור חיי הפרוצדורה עצמה . אך בניגוד לפרמטרים שמועברים לפרוצדורה , הקצאת זיכרון למשתנים מקומיים ושחרורו מתבצעת בפרוצדורה עצמה . כדי לממש מנגנון זה אנו משתמשים בהוראות POP-1 PUSH הנרשמות בגוף הפרוצדורה . בהתאם לכך , מיקומם היחסי של משתנים מקומיים במחסנית הוא מתחת לכתובת החזרה התבוננות בטבלה מלמדת כי בהוראה , 2 הכתובת 0002 מועתקת אל האוגר bx והוא מצביע על המשתנה . b בהוראה 3 מועתק תוכן המשתנה , b עליו מצביע , bx אל האוגר . ax בהוראה 4 משתמשים באוגר SI כדי להצביע על המשתנה , & ובעזרתו מחליפים את תוכן האוגר ov ax תוכן המשתנה . a ההוראה השישית מעדכנת את תוכנו של המשתנה b וכך בסיום ' הפרוצדורה מוחלפים תוכניהם של המשתנים . b-1 a איור 7 . 11 מציג את המצב של מקטע הנתונים ושל המחסנית לאחר סיום הפרוצדורה . שאלה 7 . 6 א . נניח שהמשתנים , b-1 a שכתבנו בדוגמה , 6 . 20 הם מטיפוס בית , האם צריך להכניס שינויים בתכנית ? אם לא - הסבירו מדוע , ואם כן - בצעו את השינויים הדרושים . ב . השתמשו בפרוצדורה swapByRef כדי לכתוב תכנית שתמיין שלושה משתנים a , b , c מטיפוס מילה , בסדר עולה . איור 7 . 11 מצב מקטע הנתונים והמחסנית לאחר סיום הפרוצדורה swapByRef
|
|