שאלה

yair24

Member
שאלה

כשאני כותב תכנית ושם בה משתנים אז המשתנים נמצאים במקום שנקרא DATA SEGMENT הקוד של התכנית נמצא במקום שנקרא CODE SEGMENT ומה נמצא בSTACK SEGMENT? זה בכלל נכון מה שאמרתי פה? כשאני אדע את הדברים האלה אני אכתוב כתבות שמסבירות את זה בעברית ואשים באתר שלי ככה יהיה חומר לאנשים מתחילים דרך אגב כבר עכשיו יש כתבה אחת שכתבתי על נושא מעניין שנקרא DES שזה תקן להצפנות בקריפטולוגיה אז מי שמעוניין ומחפש חומר על זה מוזמן להיכנס לאתר שלי ולקרוא רק לא לשכוח לענות לי על השאלה יאיר
 

באפט

New member
למשל,

אלמנטים שמייצגים קריאות לפונקציות (כתובת, כתובת חזרה, ארגומנטים וכולי).
 

תמר,

New member
segments

אני חושבת שזה תלוי גם בסוג הקומפיילר, וגם בשיטת הקומפילציה. באופן עקרוני: data - עבור משתנים גלובליים code - קוד התוכנית stack - מחסנית. ב-C ובעוד שפות דומות, המשתנים של הפונקציות והפרמטרים המועברים לפונקציה נשמרים באזור המחסנית. משתנים מסוג static נמצאים ב-data segment, ולכן הם כמו משתנים גלובליים. מהסיבה הנ"ל, כאשר כותבים פונקציה רקורסיבית עם תנאי עצירה לא נכון, או עם כניסות רבות מידי, מתבצעת "גלישת מחסנית", מה שאומר שהמחסנית "התמלאה" ומשתנים נוספים שייכנסו למחסנית (אם לא תתבצע גלישה) יישמרו בתחילת המחסנית על חשבון נתונים שנשמרו בעבר.
 
למעלה