Download presentation
Presentation is loading. Please wait.
1
שפת סף וארכיטקטורה של מעבד 8086
2
14 אוגרים במעבד 8086 מוחלקים ל- 4 קבוצות לפי התפקיד
רוחב פס נתונים הוא 16 רוחב פס כתובות הוא 20
3
מודל תכנותי של 8086 - קבוצת אוגרי הנתונים
תפקיד: אוגרי הנתונים משתתפים בביצוע הוראות מסוגים שונים (הוראות אריתמטיות, לוגיות, הזזה,...) תכולה: ניתן לאחסן בהם נתונים או כתובות מספר האוגרים: ישנם ארבעה סוגים של אוגרי נתונים: AX, BX, CX ו-DX. ישנן הוראות שמשתמשות בכל האוגרים לאותה מטרה, וישנן הוראות הדורשות שימוש באוגר מסוים בעל תפקיד מיוחד. במקרה כזה – יוצמד שם נוסף לאוגר. לדוגמה, כאשר מבצעים הוראות כפל/חילוק יש להשתמש באוגר AX, שנקרא גם צובר (Accumulator), כאשר משתמשים בהוראות פלט באוגר DX (שנקרא גם אוגר נתוניםData register ) מכיל את הנתונים שיש להציג כאשר מבצעים הוראות הזזה או לולאה, יש להשתמש באוגר CX הנקרא מונה (Counter register) . האוגר BX נקרא אוגר הבסיס (Base register), ובו נשתמש כמצביע בהוראות הכוללות פנייה לקבוצה של תאים בזיכרון (מערך).
4
מודל תכנותי של 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 שגויה!
5
מודל תכנותי של 8086 - קבוצת אוגרי ההצבעה ואוגרי האינדקס
אוגרי ההצבעה ואוגרי האינדקס הם אוגרים ייעודיים גודל בני 16 סיביות (לא ניתן לגשת בנפרד לבית העליון או לבית התחתון שלהם) תפקיד: הם משמשים כמצביעים לתא בזיכרון. תכולה: האוגרים האלה מכילים כתובות ישנם חמישה סוגים של אוגרי הצבעה ואוגרי אינדקס: SP, BP, SI, DI ו-IP. נפרט בקצרה על תפקידי האוגרים האלה: האוגר IP מצביע הוראות – (Instruction Pointer) – מצביע על כתובתו של הזיכרון שיש להביא ממנו את ההוראה הבאה בתכנית אל יחידת המישק לפס. בניגוד לשאר אוגרי ההצבעה, הוא אינו בשליטת המתכנת, כלומר לא ניתן לכתוב הוראה שבה IP הוא אופרנד. האוגר SP מצביע מחסנית – (Stack Pointer) – האוגר הזה מכיל את כתובתה של המחסנית. המחסנית היא קטע מוגדר בזיכרון הראשי, שהמעבד משתמש בו לביצוע פרוצדורות וכאמצעי זיכרון מהיר. האוגרים BP, SI, DI – מכילים כתובות זיכרון של אופרנדים ומשמשים בעיקר בביצוע לולאות שבהן יש גישה לקטע רציף של תאים בזיכרון הנקראים 'מערכים'.
6
מודל תכנותי של 8086 - אוגר דגלים
אוגר דגלים, הוא אוגר ייעודי המכיל אוסף של סיביות, הנקראות גם דגלים. לכל דגל (סיבית) יש שם שבאמצעותו ניתן לפנות אליו בנפרד. הדגלים משקפים את התכונות של תוצאות החישוב האריתמטי או החישוב הלוגי האחרון. כלומר בעקבות ביצוע הוראה אריתמטית או לוגית, מצב הדגלים מתעדכן בהתאם לתוצאה שהתקבלה.
7
שיטת המשלים לשתיים 2’s Complement
8
דוגמא 1: n=3. רוצים לחשב 3 – 5. נזדקק ל - n+1 = 4 סיביות.
3 = (-5) = 24 – 5 = שלילי 2’s Comp. of: -2 דוגמא 2: n= רוצים לחשב 5 – נזדקק ל - n+1 = 4 סיביות. 5 = (-3) = 24 – 3 = 1 1 נשא סופי- התעלם. “1” מתעלמים מהנשא הסופי. הוא חשוב בבדיקה של גלישה (overflow) שתיתכן כאשר מחברים שני חיוביים (שליליים) והתוצאה גדולה (קטנה) מדי לייצוג ב– n ביטים. (מה קורה בחישוב -5-4)??
9
מודל תכנותי של 8086 - קבוצת אוגרי הסגמנט
אוגרי הסגמנט מהווים חלק מקבוצת האוגרים הייעודיים תפקיד: בהם משתמשים כדי לחשב את הכתובת של תא בזיכרון, אליו הוא צריך לפנות אליו כדי לקרוא ממנו או לכתוב לתוכו. גודל: 16 סיביות תכולה: כתובת ישנם ארבעה סוגים של אוגרי סגמנט: CS, DS, SS ו-ES
10
ארגון הזיכרון ליחידות זיכרון יש מאפיינים רבים אולם בשלב נציין רק את המאפיינים החשובים לכתיבת תכנית בשפת סף, והם: גודל של תא זיכרון – קובע את מספר הסיביות ואת הערך הגדול ביותר שאפשר לאחסן בזיכרון. במעבד 8086 גודל של תא זיכרון הוא byte 1 ובו ניתן לאחסן 256 ערכים שונים. במידה וצריך לאחסן ערכים גדולים יותר ניתן להשתמש במספר תאי זיכרון על-פי הצורך. למשל, כדי לאחסן את הערך 1000 נשתמש בשני תאי זיכרון.
11
ארגון הזיכרון כתובת של תא בזיכרון אותה המעבד רושם בפס הכתובות כאשר הוא פונה לקרוא מהזיכרון או לכתוב בזיכרון. לכל תא יש כתובת ייחודית הנקראת כתובת מוחלטת בפס הכתובות של מעבד 8086 יש 20 קווי כתובת ולכן מספר הכתובות השונות שניתן ליצור 220 = 1,048,576 מפת הזיכרון מתחילה בכתובת 00000h והכתובת האחרונה היא FFFFFh.
12
ארגון הזיכרון קיבולת של זיכרון
מאחר ובית הוא גודל שכיח בזיכרונות, קיימים מספר גדלים סטנדרטיים למדידת מספר הבתים בזיכרון המתוארים בטבלה הבאה: במעבד 8086 יש 1MB
13
ארגון הזיכרון הראשי BIOS זיכרון ROM זיכרון RAM
מענים 896K-1M רכיב ROM המכיל את ה- BIOS , תכנה צרובה שמספקת שירותי בדיקה של תקינות החומרה עם העלאת המחשב וממשקים ליחידות חמרה ושירותים לפסיקות תכנה מענים 640K-896K רכיב ROM לקריאה בלבד מענים אלו שייכים לרכיבי קלט/פלט שונים כמו מסך מענים מ- 0 עד 640K זיכרון לקריאה /כתיבה לשימוש המתכנת, לכאן נטענת התכנית שאנו מריצים BIOS זיכרון ROM זיכרון RAM
14
ארגון זיכרון - מקטעים מעבד 8086 מחלק את מרחב הזיכרון שהוא לינארי לארבעה מקטעים (או סגמנטים segments) שגודל מקסימאלי של כל אחד מהם יכול להיות 64KB ולכל אחד יש שם וייעוד שונה ארגון זיכרון 80386
15
תפקיד המקטעים סגמנט הקוד (Code Segment) – בו נשמרת התכנית שיש להריץ. בדרך-כלל זהו אזור רציף של כתובות המכילות את הוראות התכנית בשפת מכונה. לאזור הזה המעבד פונה בשלב ההבאה של מחזור הבאה-וביצוע, כדי לקרוא את ההוראה לביצוע. סגמנט הנתונים (Data Segment) – באזור הזה מאוחסנים המשתנים. לאזור הזה המעבד פונה בשלב הביצוע של מחזור הבאה וביצוע לצורך קריאה וכתיבה של נתונים שיש לעבד . סגמנט מחסנית (Stack Segment) משמש כזיכרון מהיר ולטיפול בפרוצדורות, רקורסיות ועוד. הסגמנט הנוסף (External Segment) הוא סגמנט נתונים נוסף והוא משמש בדרך כלל לאחסון של נתונים המשותפים למספר משימות.
16
היסט + כתובת תחילת הסגמנט
כתובת של תא בזיכרון כתובת של תא בזיכרון מורכבת משני חלקים: היסט + כתובת תחילת הסגמנט כתובת תחילת סגמנט שמורה באוגר סגמנט (CS, DS,..) כתובת ההיסט באחד מאוגרי ההצבעה ואוגרי האינדקס וגם אוגר נתונים BX (...(SI, DI, BX,
17
כתובת יחסית כתובת של תא בתוך סגמנט נקרא היסט (offset) או כתובת לוגית ולעיתים גם כתובת אפקטיבית, והיא מציינת את מיקומו היחסי של תא מתחילת הסגמנט. בתכנית אופרנד שמכיל כתובת מספיק שיציין את ההיסט. כתובת הסגמנט היא בדרך כלל קבועה ונקבעת כאשר תכנית נטענת לזיכרון לדוגמה, ההיסט (הכתובת הלוגית ) של הוראה היא 0450h זה התא שמרוחק 450 בתים מתחילת מקטע הקוד
18
המרה מכתובת לוגית לכתובת מוחלטת
איך מחושבת כתובת מוחלטת בת 20 סיביות כאשר כל אוגר הוא בן 16 סיביות ? על כך אחראית יחידה הנמצאת במעבד
19
חפיפת מקטעים: כתובת לוגית וכתובת מוחלטת
20
קביעת כתובת בסיס של מקטע
אוגר מקטע קוד יכול להכיל כתובת שהיא כפולה של 16 כפולה זו נקראת פסקה (paragraph) באמצעות אוגר CS ניתן לכסות את כל מרחב הכתובות בזיכרון 1MB בכפולות של 16 לדוגמה, כאשר CS=0, הכתובת שהוא מצביע עליה היא 0*16 כאשר CS=1, הכתובת שהוא מצביע עליה היא 1*16 כאשר CS=k, הכתובת שהוא מצביע עליה היא k*16
21
יתרונות של השימוש במקטעים
תאימות למעבד קודם 8085 שבו מרחב הזיכרון הוא רק 64KB (מקטע אחד מכסה את כל התחום) בתכנית אנו מציינים את ההיסט של תא (רק 16 סיביות) . המעבד מחשב כתובת מוחלטת בעזרת כתובת אוגר המקטע המתאים הפרדה בין נתונים והוראות אפשרות להריץ אותה התכנית ובכל פעם לשנות את רק את הנתונים. מנגנון זה מאפשר להריץ מספר תכניות, כאשר לכל תכנית מוקצים סגמנטים נפרדים. מנגנון זה מאפשר שיתוף נתונים בין מספר תכניות.
22
גודל מקטע הנתונים גודל מקטע הנתונים נקבע על פי מספר המשתנים וגודלם
לדוגמה: הגדרנו 3 בתים, גודל המקטע יהיה הכפולה הקטנה ביותר של 16 וגדולה מ- 3 ולכן הגודל של מקטע נתונים יהיה 16 בתים (פסקה אחת) אבל רק שלושה בתים ראשונים יכילו את המשתנים שהגדרנו . יתר 13 הבתים הם "זיכרון מבוזבז"
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.