|
עמוד:188
חשוב שלכל הוראת CALL הקוראת לשגרה תהיה הוראה RET בסיום השגרה . הדבר דומה לשימוש בסוגר פותח ') ' – וסוגר סוגר '( '– בביצוע ביטויים חשבוניים . נחזור ונתאר מה יקרה לביצוע לתכנית שבה ניתנת ההוראה RET בלא ביצוע ההוראה . CALL המחסנית היא חלק מן הזיכרון הראשי . בכל תא ותא במחסנית ישנו ערך כלשהו , שנקבע באופן אקראי עם הפעלת המחשב . כאשר מתבצעת קריאה לשגרה , ( CALL ) כתובת האוגר IP מוכנסת למחסנית , והיא מוחקת את הערך האקראי של התאים שאליהם היא הוכנסה . כאשר מבצעים את ההוראה , RET ערך האוגר IP נשלף מן המחסנית . אולם בתכנית שבה התבצעה פעולת RET ללא פעולת , CALL הערך האקראי במחסנית יישלף ויישמר באוגר , IP והוא יקבע את הכתובת הבאה שבה התכנית תמשיך להתבצע . הכתובת הזאת אינה ידועה , והיא יכולה להיות גם באזור של כתובות המכילות נתונים חיוניים לפעולת המחשב , שבהם לתכנית אסור לגעת . אם התכנית תשנה אותם , פעולת המחשב עלולה להשתבש . איור 1 . 67 ביצוע החזרה משגרה קרובה
|
|