יום שישי, 23 בספטמבר 2016
שיעור שפת סף - ארכיטקטורה ופקודות בשפת אסמבלי 86 (יום חמישי)
למדנו:
ארכיטקטורה של מעבד 8086:
במעבד יש 14 "אוגרים" מ5 סוגים:
4 "אוגרים כלליים" ( AX, BX, CX, DX) (לפעמים BX יכול לשמש כאוגר מצביע)
4 אוגרי מצביע (SI, DI, BP, SP)
4 אוגרי מקטע (DS, CS, SS, ES)
1 אוגר דגלים
1 אוגר מצביע הוראה IP
לעוד מידע:
מתכנת בשפת סף, שהיא שפה נמוכה, צריך להכיר לא רק את מבנה ההוראות וכללי השפה אלא גם הארכיטקטורה של המחשב אליו מתייחסות ההוראות בשפה זו. כדוגמה לשפה נמוכה תארנו בפרק הראשון שפת מכונה של מעבד פשוט וראינו כי ההוראות התייחסו הן לאוגרים שהם חלק מהמעבד והן לכתובות בזיכרון בהן אוחסנו הנתונים והוראות התכנית ולכן היינו צריכים להכיר את מבנה המחשב. באופן דומה, נציג בפרק זה את הארכיטקטורה של המעבד, מנקודת מבט של מתכנת בשפת סף ונתייחס להיבטים הבאים: תחילה נתאר מבנה של הוראה בשפת סף המוגדר בארכיטקטורה של אוסף ההוראות של המעבד (ISA). אוסף ההוראות והשימוש בהן יתואר בהרחבה בשני הפרקים הבאים. לאחר מכן, נציג את המודל התכונתי של מעבד המתאר את האוגרים בו משתמשים בהוראות שפת הסף, ואת מבנה הזיכרון וכיצד ניגשים לנתונים המאוחסנים בו. לסיום, נציג מבנה של תכנית הכוללת את כל המרכיבים הדרושים שיש לכלול בה כדי שיהיה ניתן להדר ולהריץ אותה ונתאר כיצד מגדירים משתנים בשפת סף.
המעבד שנציג בספר זה הוא מעבד 8086 שייצרה חברת אינטל בשנת 1978. חברת אינטל החלה בפיתוח מעבדים למחשבים אישיים בשנות 1970, ומאז היא הוציאה לשוק גרסאות שונות של מעבדים המכונים 'דורות'. שמות המעבדים מחמשת הדורות הראשונים נקבעו על-ידי מספרים המתחילים בספרות 80 והם: 8086 ו-80186, 80286, 80386, 80486. החל מן הדור השישי, התחילה חברת אינטל לכנות את המעבדים בשם פנטיום (פנטה = 5 ביוונית) ולמספרם במספרים מ-40586 ואילך, זאת כדי להגן על זכויות היוצרים של החברה. את משפחת המעבדים של אינטל מכנים בקיצור כמשפחת x86, וכך נכנה אותה בספר זה. כל דור חדש של מעבדים בא לשפר את כושר העיבוד של המעבדים מן הדור הקודם ויחד עם זאת הוא שמר על עקרון התאימות (Compatibility). לפי עקרון התאימות, כל מחשב המבוסס על מעבד מדור חדש יהיה מסוגל להריץ גם תכניות הכתובות למעבדים מדורות קודמים. כך הבטיחה חברת אינטל שמשתמשים לא יצטרכו לשכתב את כל התכניות מחדש בכל פעם שהם מחליפים את המחשב שלהם, ובתנאי שהוא יתאים לארכיטקטורה של מעבדי אינטל. כדי לשמור על תאימות, המעבדים מבוססים על אותה ארכיטקטורה דומה ולכל המעבדים יש קבוצת הוראות (ISA) בסיסית, והשינויים מדור לדור מתבטאים בעיקר בהרחבת קבוצת ההוראות ובארגון מעבד שונה. כמו כן, בכל גרסה חדשה של מעבדים אפשר להגדיר צורת עבודה (הנקראת real mode) המאפשרת שימוש בארכיטקטורה של מעבד מדור קודם, וכך ניתן לבצע תכניות שנכתבו בעבור מעבדים מדורות קודמים במעבד החדש...
להורדה של המסמך המלא בקובץ DOC
להורדה של המסמך המלא בקובץ DOC
פקודות בשפת אסמבלי 86:
MOV (מעתיק)
XCHG (החלפה)
יום רביעי, 21 בספטמבר 2016
שפת C - למדנו switch case (יום רביעי)
הסברים בשיעור:
חזרה:
///////////////////////// Exe num 4 #include <stdio.h> void main() { int num; printf("Enter number: "); scanf("%d",&num); if(num%3 == 0) printf("%d\n",num); else if((num+1)%3 == 0) printf("%d\n",num+1); else printf("%d\n",num-1); }
הירשם ל-
רשומות (Atom)