|
עמוד:134
הגדרות של משתנים נרשמות בתכנית אסמבלי , לאחר ההנחיה המגדירה את תחילת מקטע הנתונים : . DATA לפני שאנו מריצים תכנית , אנו מתרגמים אותה לשפת מכונה ( באמצעות תכנית אסמבלר , ( ולאחר מכן אנו מפעילים תהליך שנקרא "קישור" . ( link ) בתהליך הקישור נקבעים מיקומי המקטעים השונים בזיכרון וביניהם גם מקטע הנתונים , הכולל הקצאה של בתים בהתאם למשתנים שהגדרנו . למשתנה הראשון , שהוגדר במקטע הנתונים עבור הנתון הראשון , מוקצים התאים הראשונים במקטע , והוא מתחיל בהיסט . 0 המשתנה השני עוקב לו והוא מתחיל בתא העוקב לתא האחרון שהוקצה למשתנה שלפניו , וכך הלאה , לפי סדר ההגדרה של המשתנים במקטע הנתונים . מאחר שגודל תא בזיכרון הוא בית אחד , נשאלת השאלה , כיצד מאוחסנים בזיכרון משתנים מטיפוס מילה או מילה כפולה ? במעבדים של אינטל , מוקצים כמה בתים עוקבים למשתנים מטיפוס הגדול מטיפוס בית . כך מוקצים שני בתים עוקבים למשתנה מטיפוס מילה , ולטיפוס מילה כפולה מוקצים ארבעה בתים עוקבים . אחסון הנתון בשטח שהוקצה למשתנה מתבצע בשיטה הנקראת . little-endian לפי שיטה זו , הבית הפחות משמעותי מאוחסן בכתובת הנמוכה , והבית המשמעותי של המילה מאוחסן בכתובת העוקבת ( ומכאן השם , little-endian דהיינו י מי שמופיע ראשון הוא "הקצה הקטן ; " השם נבחר בהומור , שכן הוא מזכיר "אינדיאני קטן" . ( little Indian - לדוגמה , המילה 1011011110011000 תאוחסן בשני תאי זיכרון : בתא שכתובתו היחסית היא 10111 יאוחסן הבית המשמעותי , כלומר , 10110111 ובכתובת היחסית 100 h יאוחסן הבית הפחות משמעותי , כלומר . 10011000 . איור 4 . 6 אחסון מילה בזיכרון בשיטה little-endian
|
|