הרצאה 6 - אזור זיכרון דינאמי המוקצה לזמן ריצה. גדל ככל שמתקדמות כתובות הזיכרון. ה-Heap מחולק לשני חלקים:
1. Static Data – מוקצה בהתחלה (בזמן ריצה) ונשאר מוקצה לאורך כל התוכנית.
2. Dynamic Data – מוקצה במהלך זמן הריצה (לדוג' ע"י הפרוצדורות) וייתכן שישוחרר (ע"י המתכנת).
מיין לפי
Noam Tarshish0 נקודות ·
יותר מ-6 חודשים
( תגובות)
מוניטין: 10
הרצאה 6 - אזור זיכרון דינאמי המוקצה לזמן ריצה. גדל ככל שמתקדמות כתובות הזיכרון. ה-Heap מחולק לשני חלקים:
1. Static Data – מוקצה בהתחלה (בזמן ריצה) ונשאר מוקצה לאורך כל התוכנית.
2. Dynamic Data – מוקצה במהלך זמן הריצה (לדוג' ע"י הפרוצדורות) וייתכן שישוחרר (ע"י המתכנת).
הרצאה 7 - כאשר יהיו לנו מגוון קבצי מקור נצטרך לשמור על ארגון הקוד: main בקובץ אחר, פונקציות בקבצים אחרים. בנוסף, נוכל להשתמש בספריות חיצונית.
אפשר להשתמש ב-directives (הוראות שנשלחות לאסמבלר במטרה להצהיר/לשמור ערכי זיכרון או על מנת להפריד את התוכנית לחלקים):
• .globl : מסמן תגיות קוד כגלובליות, כלומר שניתן לגשת אליהם מקבצים אחרים.
• .extern : מסמן תגיות data לאסמבלר אשר הוצאו במקום אחר בתוכנית.
הרצאה 7 - כאשר יהיו לנו מגוון קבצי מקור נצטרך לשמור על ארגון הקוד: main בקובץ אחר, פונקציות בקבצים אחרים. בנוסף, נוכל להשתמש בספריות חיצונית. אפשר להשתמש ב-directives (הוראות שנשלחות לאסמבלר במטרה להצהיר/לשמור ערכי זיכרון או על מנת להפריד את התוכנית לחלקים):
• .globl : מסמן תגיות קוד כגלובליות, כלומר שניתן לגשת אליהם מקבצים אחרים.
• .extern : מסמן תגיות data לאסמבלר אשר הוצאו במקום אחר בתוכנית.
הרצאה 7 - 1. המרת כל קוד אסמבלי ל-object code ע"י ה-Assembler.
2. איסוף כל קבצי object code והפניות לספריות חיצונית. שימוש ב-Linker על מנת לקשר את כל קבצי ה-object code על מנת ליצור executable.
3. שימוש ב-Loader על מנת לטעון את ה-executable לתוך הזיכרון ולהריץ אותו.
מיין לפי
Noam Tarshish0 נקודות ·
יותר מ-6 חודשים
( תגובות)
מוניטין: 10
הרצאה 7 -
1. המרת כל קוד אסמבלי ל-object code ע"י ה-Assembler.
2. איסוף כל קבצי object code והפניות לספריות חיצונית. שימוש ב-Linker על מנת לקשר את כל קבצי ה-object code על מנת ליצור executable.
3. שימוש ב-Loader על מנת לטעון את ה-executable לתוך הזיכרון ולהריץ אותו.
הרצאה 7 - מתרגם שפת אסמבלי לשפת מכונה או object code שמעבד המחשב יכול להבין ולבצע. פעולות חשובות:
• תרגום קוד – ממיר הוראות pseudo להוראות ISA.
• הפניות לסמלים – פותר הפניות לסמלים, כגון תגיות ומשתנים, ע"י הקצאת זיכרון מתאים להם.
• יוצר object code.
מיין לפי
Noam Tarshish0 נקודות ·
יותר מ-6 חודשים
( תגובות)
מוניטין: 10
הרצאה 7 - מתרגם שפת אסמבלי לשפת מכונה או object code שמעבד המחשב יכול להבין ולבצע. פעולות חשובות:
• תרגום קוד – ממיר הוראות pseudo להוראות ISA.
• הפניות לסמלים – פותר הפניות לסמלים, כגון תגיות ומשתנים, ע"י הקצאת זיכרון מתאים להם.
• יוצר object code.
הרצאה 7 - סורק את הקוד בכל שורה (מתעלם מהוראות). עובד בשני מעברים:
1. Pass 1 – ממיר הוראות pseudo להוראות ISA. בנוסף, בונה טבלאות.
2. Pass 2 – מחליף סמלים מקומיים עם הכתובות הלוגיות המתאימות להם/offset. בנוסף, ממיר הוראות ISA לשפת מכונה, בונה object code ושומר את Relocation table.
מיין לפי
Noam Tarshish0 נקודות ·
יותר מ-6 חודשים
( תגובות)
מוניטין: 10
הרצאה 7 - סורק את הקוד בכל שורה (מתעלם מהוראות). עובד בשני מעברים:
1. Pass 1 – ממיר הוראות pseudo להוראות ISA. בנוסף, בונה טבלאות.
2. Pass 2 – מחליף סמלים מקומיים עם הכתובות הלוגיות המתאימות להם/offset. בנוסף, ממיר הוראות ISA לשפת מכונה, בונה object code ושומר את Relocation table.
הרצאה 7 - לכל ההוראות צריך להשתמש ב-PC Fetch (Program Counter Fetch) על מנת להביא את ההוראות מהזיכרון ולאחר מכן לקרוא רגיסטר אחד או שניים. אחרי הצעדים האלו, הפעולות מתבצעות על בסיס סוג ההוראה אליה הן שייכות:
1. R-type – רגיסטרים: קורא 2 רגיסטרים לפעולות מתמטיות. (לדוג' add, sub)
2. I-type – מיידי: משתמשים בערך מיידי לגישה לזיכרון, ערכים סטטיים ו-branches. (לדוג'lw, beq )
3. J-type – קפיצות: משתמש בכמעט זיכרון מלא על מנת לקפוץ רחוק. (jump)
• כל ההוראות חוץ מ-J-type משתמשות ב-ALU.
מיין לפי
Noam Tarshish0 נקודות ·
יותר מ-6 חודשים
( תגובות)
מוניטין: 10
הרצאה 7 - לכל ההוראות צריך להשתמש ב-PC Fetch (Program Counter Fetch) על מנת להביא את ההוראות מהזיכרון ולאחר מכן לקרוא רגיסטר אחד או שניים. אחרי הצעדים האלו, הפעולות מתבצעות על בסיס סוג ההוראה אליה הן שייכות:
1. R-type – רגיסטרים: קורא 2 רגיסטרים לפעולות מתמטיות. (לדוג' add, sub)
2. I-type – מיידי: משתמשים בערך מיידי לגישה לזיכרון, ערכים סטטיים ו-branches. (לדוג'lw, beq )
3. J-type – קפיצות: משתמש בכמעט זיכרון מלא על מנת לקפוץ רחוק. (jump) • כל ההוראות חוץ מ-J-type משתמשות ב-ALU.