שפת סף וארכיטקטורה של מעבד 8086

Slides:



Advertisements
Similar presentations
ממיבחניםC שאלות ++.
Advertisements

1 מבוא למדעי המחשב הקצאה דינאמית. 2 הקצאת זיכרון דינאמית  כאשר אנו משתמשים במערכים, אנו מקצים אוטומטית את הזיכרון המקסימלי שנצטרך.  בפועל, אנו משתמשים.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
A. Frank File Organization קובץ ישיר מתקדם Advanced Direct File.
מערכות הפעלה תרגול 10 – זיכרון וירטואלי ב- Linux.
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
תכנות תרגול 4 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
(C) Yohai Devir January מבנה מחשבים ספרתיים תרגול מס ' 12: זיכרון וירטואלי ב - VAX מבוסס על תרגולים מאת מורן גביש ואורן קצנגולד.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
מבוא למדעי המחשב מחרוזות, מצביעים וכתובות
1 חישוב ואופטימיזציה של שאילתות חלק 2 Query Evaluation and Optimization Part 2.
תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. ניהול טבלת הדפים. מדיניות החלפת דפים.
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
קורס תכנות – סימסטר ב ' תשס " ח שיעור שישי: מערכים
טיב פני שטח (טפ"ש) טיב פני שטח- רמת החלקות של המשטח.
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
עקרון ההכלה וההדחה.
1 שלבי ביצוע הוראת מכונה (1) FETCH = קרא הוראה מהזיכרון ע " פ הכתובת שמכיל ה -PC. (2) DECODE = פענח את הפקודה וקרא את האוגרים הנחוצים ( אחד או שניים ).
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
תוכנה 1 - תרגול שיעור 10 Pointers (2) שולי לב יהודי
תרגול 2: ייצוג מספרים - המשך
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
מבוא כללי למדעי המחשב הקצאת זיכרון דינאמית
מבוא למערכות מחשב ואסמבלי
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
(C) Yohai Devir January מבנה מחשבים ספרתיים זכרון וירטואלי מבוסס על תרגול של מורן גביש.
מבוא למדעי המחשב תרגול 12 – הקצאת זיכרון דינאמית שעת קבלה : יום שני 11:00-12:00 דוא " ל :
שלבי ביצוע הוראת מכונה (1) FETCH = קרא הוראה מהזיכרון ע " פ הכתובת שמכיל ה -PC. (2) DECODE = פענח את הפקודה וקרא את האוגרים הנחוצים ( אחד או שניים ). (3)
1 ׃1998 Morgan Kaufmann Publishers פקודת ה- jump 4 bits 26 bits 2 bits 00 : כתובת קפיצה במילים : כתובת קפיצה בבתים … …
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
עקרונות תכנות מונחה עצמים תרגול 11: OOP in C++. Outline  Where do the objects live ?  Inheritance  Slicing  Overriding vs Shadowing.
מבוא לטכנולוגיות מחשב מבוא
Computer Architecture and Assembly Language
Formal Specifications for Complex Systems (236368) Tutorial #1
מערכות הפעלה ערן טרומר סמסטר א' תשע"ב
מבוא למדעי המחשב סיבוכיות.
אינדקסינג והשינג (indexing & hashing)
מערכים ומצביעים הקצאה דינאמית של מערכים דו-מימדיים
תקשורת ומחשוב תרגול 1 IP, Classes and Masks.
מצביעים קרן כליף.
SQL בסיסי – הגדרה אינדוקטיבית
שפת סף וארכיטקטורה של מעבד 8086
מבנה המחשב ושפות סף תרגול 2.
תירגול 14: מבני נתונים דינאמיים
מרכיבים עיקריים של מערכת מבוססת מיקרו מחשב
עבודה עם נתונים באמצעות ADO.NET
אוגרים ומונים – Registers & Counters
פרוקטוז, C6H12O6 , חד-סוכר מיוחד
ממשקים - interfaces איך לאפשר "הורשה מרובה".
Introduction to Programming in C
8086 Registers Module M14.2 Sections 9.2, 10.1.
תכנות מתקדם בשפת סף שיטות מיעון ומבני נתונים
תרגול 12 – ניהול זיכרון ב-Linux: המשך
Shell Scripts בסביבת UNIX
ייצוג מספרים יהודה אפק, יוסי מטיאס אוניברסיטת תל אביב
תירגול 8:מצביעים והקצאה דינאמית
Engineering Programming A
Computer Architecture and Assembly Language
Presentation transcript:

שפת סף וארכיטקטורה של מעבד 8086 http://www.docstoc.com/docs/123221437/Intro-to-8086-Assembly-Language---PowerPoint

14 אוגרים במעבד 8086 מוחלקים ל- 4 קבוצות לפי התפקיד רוחב פס נתונים הוא 16 רוחב פס כתובות הוא 20

מודל תכנותי של 8086 - קבוצת אוגרי הנתונים תפקיד: אוגרי הנתונים משתתפים בביצוע הוראות מסוגים שונים (הוראות אריתמטיות, לוגיות, הזזה,...) תכולה: ניתן לאחסן בהם נתונים או כתובות מספר האוגרים: ישנם ארבעה סוגים של אוגרי נתונים: AX, BX, CX ו-DX. ישנן הוראות שמשתמשות בכל האוגרים לאותה מטרה, וישנן הוראות הדורשות שימוש באוגר מסוים בעל תפקיד מיוחד. במקרה כזה – יוצמד שם נוסף לאוגר. לדוגמה, כאשר מבצעים הוראות כפל/חילוק יש להשתמש באוגר AX, שנקרא גם צובר (Accumulator), כאשר משתמשים בהוראות פלט באוגר DX (שנקרא גם אוגר נתוניםData register ) מכיל את הנתונים שיש להציג כאשר מבצעים הוראות הזזה או לולאה, יש להשתמש באוגר CX הנקרא מונה (Counter register) . האוגר BX נקרא אוגר הבסיס (Base register), ובו נשתמש כמצביע בהוראות הכוללות פנייה לקבוצה של תאים בזיכרון (מערך).

מודל תכנותי של 8086 - קבוצת אוגרי הנתונים גודל – מספר הסיביות: כל האוגרים בקבוצה זו הנתונים במעבד 8086 הם בני 2 בתים (16 סיביות) ניתן להתייחס אל אוגר נתונים כאל אוגר המכיל בתוכו שני אוגרים נפרדים, בגודל של בית (8 סיביות) כל אחד. חלקו התחתון של האוגר (סיביות 0 עד 7) משמש כאוגר אחד, ומצוין באמצעות האות L (קיצור של Low). חלקו העליון של האוגר (סיביות 8 עד 15) משמש כאוגר שני, ומצוין באמצעות האות H קיצור של (High). האותיות L ו-H מחליפות את האות X באוגר השלם. לדוגמה: MOV AX, 0FF00h ; AH=0FFh, AL=00h MOV BL, AL אי-אפשר להשתמש באותה הוראה באופרנד אחד שהוא אוגר בגודל בית ובאופרנד אחר שהוא אוגר בגודל מילה. למשל ההוראה: MOV BL, AX שגויה!

מודל תכנותי של 8086 - קבוצת אוגרי ההצבעה ואוגרי האינדקס אוגרי ההצבעה ואוגרי האינדקס הם אוגרים ייעודיים גודל בני 16 סיביות (לא ניתן לגשת בנפרד לבית העליון או לבית התחתון שלהם) תפקיד: הם משמשים כמצביעים לתא בזיכרון. תכולה: האוגרים האלה מכילים כתובות ישנם חמישה סוגים של אוגרי הצבעה ואוגרי אינדקס: SP, BP, SI, DI ו-IP. נפרט בקצרה על תפקידי האוגרים האלה:  האוגר IP מצביע הוראות – (Instruction Pointer) – מצביע על כתובתו של הזיכרון שיש להביא ממנו את ההוראה הבאה בתכנית אל יחידת המישק לפס. בניגוד לשאר אוגרי ההצבעה, הוא אינו בשליטת המתכנת, כלומר לא ניתן לכתוב הוראה שבה IP הוא אופרנד. האוגר SP מצביע מחסנית – (Stack Pointer) – האוגר הזה מכיל את כתובתה של המחסנית. המחסנית היא קטע מוגדר בזיכרון הראשי, שהמעבד משתמש בו לביצוע פרוצדורות וכאמצעי זיכרון מהיר. האוגרים BP, SI, DI – מכילים כתובות זיכרון של אופרנדים ומשמשים בעיקר בביצוע לולאות שבהן יש גישה לקטע רציף של תאים בזיכרון הנקראים 'מערכים'.

מודל תכנותי של 8086 - אוגר דגלים אוגר דגלים, הוא אוגר ייעודי המכיל אוסף של סיביות, הנקראות גם דגלים. לכל דגל (סיבית) יש שם שבאמצעותו ניתן לפנות אליו בנפרד. הדגלים משקפים את התכונות של תוצאות החישוב האריתמטי או החישוב הלוגי האחרון. כלומר בעקבות ביצוע הוראה אריתמטית או לוגית, מצב הדגלים מתעדכן בהתאם לתוצאה שהתקבלה.

שיטת המשלים לשתיים 2’s Complement

דוגמא 1: n=3. רוצים לחשב 3 – 5. נזדקק ל - n+1 = 4 סיביות. 3 = 00112 (-5) = 24 – 5 = 0 1 0 1 2 1 0 1 1 2 שלילי 2’s Comp. of: -2  דוגמא 2: n=3. רוצים לחשב 5 – 3. נזדקק ל - n+1 = 4 סיביות. 5 = 01012 (-3) = 24 – 3 = 0 01 1 2 1 1 0 1 2 1 1 נשא סופי- התעלם. “1” מתעלמים מהנשא הסופי. הוא חשוב בבדיקה של גלישה (overflow) שתיתכן כאשר מחברים שני חיוביים (שליליים) והתוצאה גדולה (קטנה) מדי לייצוג ב– n ביטים. (מה קורה בחישוב -5-4)??

מודל תכנותי של 8086 - קבוצת אוגרי הסגמנט אוגרי הסגמנט מהווים חלק מקבוצת האוגרים הייעודיים תפקיד: בהם משתמשים כדי לחשב את הכתובת של תא בזיכרון, אליו הוא צריך לפנות אליו כדי לקרוא ממנו או לכתוב לתוכו. גודל: 16 סיביות תכולה: כתובת ישנם ארבעה סוגים של אוגרי סגמנט: CS, DS, SS ו-ES

ארגון הזיכרון ליחידות זיכרון יש מאפיינים רבים אולם בשלב נציין רק את המאפיינים החשובים לכתיבת תכנית בשפת סף, והם: גודל של תא זיכרון – קובע את מספר הסיביות ואת הערך הגדול ביותר שאפשר לאחסן בזיכרון. במעבד 8086 גודל של תא זיכרון הוא byte 1 ובו ניתן לאחסן 256 ערכים שונים. במידה וצריך לאחסן ערכים גדולים יותר ניתן להשתמש במספר תאי זיכרון על-פי הצורך. למשל, כדי לאחסן את הערך 1000 נשתמש בשני תאי זיכרון.

ארגון הזיכרון כתובת של תא בזיכרון אותה המעבד רושם בפס הכתובות כאשר הוא פונה לקרוא מהזיכרון או לכתוב בזיכרון. לכל תא יש כתובת ייחודית הנקראת כתובת מוחלטת בפס הכתובות של מעבד 8086 יש 20 קווי כתובת ולכן מספר הכתובות השונות שניתן ליצור 220 = 1,048,576 מפת הזיכרון מתחילה בכתובת 00000h והכתובת האחרונה היא FFFFFh.

ארגון הזיכרון קיבולת של זיכרון מאחר ובית הוא גודל שכיח בזיכרונות, קיימים מספר גדלים סטנדרטיים למדידת מספר הבתים בזיכרון המתוארים בטבלה הבאה: במעבד 8086 יש 1MB

ארגון הזיכרון הראשי BIOS זיכרון ROM זיכרון RAM מענים 896K-1M רכיב ROM המכיל את ה- BIOS , תכנה צרובה שמספקת שירותי בדיקה של תקינות החומרה עם העלאת המחשב וממשקים ליחידות חמרה ושירותים לפסיקות תכנה מענים 640K-896K רכיב ROM לקריאה בלבד מענים אלו שייכים לרכיבי קלט/פלט שונים כמו מסך מענים מ- 0 עד 640K זיכרון לקריאה /כתיבה לשימוש המתכנת, לכאן נטענת התכנית שאנו מריצים BIOS זיכרון ROM זיכרון RAM

ארגון זיכרון - מקטעים מעבד 8086 מחלק את מרחב הזיכרון שהוא לינארי לארבעה מקטעים (או סגמנטים segments) שגודל מקסימאלי של כל אחד מהם יכול להיות 64KB ולכל אחד יש שם וייעוד שונה ארגון זיכרון 80386

תפקיד המקטעים סגמנט הקוד (Code Segment) – בו נשמרת התכנית שיש להריץ. בדרך-כלל זהו אזור רציף של כתובות המכילות את הוראות התכנית בשפת מכונה. לאזור הזה המעבד פונה בשלב ההבאה של מחזור הבאה-וביצוע, כדי לקרוא את ההוראה לביצוע. סגמנט הנתונים (Data Segment) – באזור הזה מאוחסנים המשתנים. לאזור הזה המעבד פונה בשלב הביצוע של מחזור הבאה וביצוע לצורך קריאה וכתיבה של נתונים שיש לעבד . סגמנט מחסנית (Stack Segment) משמש כזיכרון מהיר ולטיפול בפרוצדורות, רקורסיות ועוד. הסגמנט הנוסף (External Segment) הוא סגמנט נתונים נוסף והוא משמש בדרך כלל לאחסון של נתונים המשותפים למספר משימות.

היסט + כתובת תחילת הסגמנט כתובת של תא בזיכרון כתובת של תא בזיכרון מורכבת משני חלקים: היסט + כתובת תחילת הסגמנט כתובת תחילת סגמנט שמורה באוגר סגמנט (CS, DS,..) כתובת ההיסט באחד מאוגרי ההצבעה ואוגרי האינדקס וגם אוגר נתונים BX (...(SI, DI, BX,

כתובת יחסית כתובת של תא בתוך סגמנט נקרא היסט (offset) או כתובת לוגית ולעיתים גם כתובת אפקטיבית, והיא מציינת את מיקומו היחסי של תא מתחילת הסגמנט. בתכנית אופרנד שמכיל כתובת מספיק שיציין את ההיסט. כתובת הסגמנט היא בדרך כלל קבועה ונקבעת כאשר תכנית נטענת לזיכרון לדוגמה, ההיסט (הכתובת הלוגית ) של הוראה היא 0450h זה התא שמרוחק 450 בתים מתחילת מקטע הקוד

המרה מכתובת לוגית לכתובת מוחלטת איך מחושבת כתובת מוחלטת בת 20 סיביות כאשר כל אוגר הוא בן 16 סיביות ? על כך אחראית יחידה הנמצאת במעבד

חפיפת מקטעים: כתובת לוגית וכתובת מוחלטת

קביעת כתובת בסיס של מקטע אוגר מקטע קוד יכול להכיל כתובת שהיא כפולה של 16 כפולה זו נקראת פסקה (paragraph) באמצעות אוגר CS ניתן לכסות את כל מרחב הכתובות בזיכרון 1MB בכפולות של 16 לדוגמה, כאשר CS=0, הכתובת שהוא מצביע עליה היא 0*16 כאשר CS=1, הכתובת שהוא מצביע עליה היא 1*16 כאשר CS=k, הכתובת שהוא מצביע עליה היא k*16

יתרונות של השימוש במקטעים תאימות למעבד קודם 8085 שבו מרחב הזיכרון הוא רק 64KB (מקטע אחד מכסה את כל התחום) בתכנית אנו מציינים את ההיסט של תא (רק 16 סיביות) . המעבד מחשב כתובת מוחלטת בעזרת כתובת אוגר המקטע המתאים הפרדה בין נתונים והוראות אפשרות להריץ אותה התכנית ובכל פעם לשנות את רק את הנתונים. מנגנון זה מאפשר להריץ מספר תכניות, כאשר לכל תכנית מוקצים סגמנטים נפרדים. מנגנון זה מאפשר שיתוף נתונים בין מספר תכניות.

גודל מקטע הנתונים גודל מקטע הנתונים נקבע על פי מספר המשתנים וגודלם לדוגמה: הגדרנו 3 בתים, גודל המקטע יהיה הכפולה הקטנה ביותר של 16 וגדולה מ- 3 ולכן הגודל של מקטע נתונים יהיה 16 בתים (פסקה אחת) אבל רק שלושה בתים ראשונים יכילו את המשתנים שהגדרנו . יתר 13 הבתים הם "זיכרון מבוזבז"