x86
ארכיטקטורת x86 היא שם כולל לסדרת מעבדים שפותחו ויוצרו על ידי אינטל. כיום (2006), ארכיטקטורת x86 היא הנפוצה ביותר במחשבים שולחניים ומחשבים ניידים.
ארכיטקטורה זו נקראת בשם x86 מפני שהמעבדים הראשונים במשפחת מעבדים זו, זוהו על ידי שמם שנגמר תמיד ב-86: 8086, 80186, 80286, 386, ו-486.
כדי למנוע מיצרנים מתחרים להשתמש בשמות דומים עבור המעבדים שלהם, ולאחר שבית משפט קבע שמספר לא יכול להיות סמל מסחרי, החלה אינטל לעבוד תחת השם המסחרי "פנטיום" למחשבים המתקדמים בארכיטקטורה זו. שמה של ארכיטקטורת x86 זו הורחב פעמיים. בשנת 1985, אינטל שיחררה לשוק המעבדים את המעבד 386 32 ביט כדי שיחליף את ה-286 16 ביט, שהיה נפוץ באותה תקופה.
ארכיטקטורת 32 ביט נקראה x86-32 או IA-32 (קיצור של Intel Architecture 32 bit). בשנת 2003, הציגה AMD את מעבד האת'לון 64 (Athlon 64) בארכיטקטורת 64 ביט, ונקרא בשפה המקצועית EM64T, AMD64 או x86-64.
היסטוריה [עריכה]
ארכיטקטורת x86 הופיעה לראשונה במעבד 8086 בשנת 1978. מעבד ה-8086 החליף את המעבד הקודם של אינטל ה-8080 (שבעצמו החליף את ה-4004 וה-8008). בזכות בחירתו של ה-8086 על ידי IBM כמעבד של המחשב האישי הראשון מתוצרתה, הפכה ארכיטקטורת x86 לנמכרת והמצליחה ביותר בשוק המעבדים.
מלבד אינטל, חברות רבות יצרו מעבדים מארכיטקטורת ה-x86 ובהן: Cyrix, NEC Corporation, IBM, IDT, Transmeta. החברה המצליחה ביותר מבין החברות המתחרות באינטל ליצור מעבד בארכיטקטורה זו הייתה AMD כשהציגה את סדרת את'לון, סדרה זו לא הייתה נפוצה כמו הפנטיום אך על-פי מחקר שנערך בשנת 2006 מכירותיה של AMD בשוק המחשבים הביתיים עולה על זה של אינטל.
אינטל הוציאה לשוק בשנת 2001 את מעבדי האיטניום שתומכים בארכיטקטורת 64 ביט תחת השם המסחרי IA-64.
האוגרים בארכיטקטורת x86 [עריכה]
ארכיטקטורת x86 מיישמת מספר אוגרים. חלק מהאוגרים מורכב בצורה מבנית מיוחדת כך שכאשר אוגר מסוים, למשל EAX, שווה לערך H 78563412 (ספירה הקסדצימלית), AX ישקף את המילה התחתונה של EAX ויהיה שווה ל-3412, ה-AH (מ-High) ישקף את הבית הגבוה של AX ויהיה שווה ל-34, וה-AL (מ-Low) ישקף את הבית הנמוך של AX ויהיה שווה ל-12:
| 12 | 34 | 56 | 78 |
| AL | AH | - | |
| AX | - | ||
| EAX | |||
להלן האוגרים הקיימים בכל מעבדי אינטל תואמי-x86:
| אוגר | תפקיד | סוג | חלק תחתון | חלק עליון | גרסת 32-סיביות |
|---|---|---|---|---|---|
| AX | צובר - Accumulator | אוגר נתונים | AL | AH | EAX |
| האוגר הפעיל ביותר, עליו נערכות הרבה מהפעולות האריתמטיות. | |||||
| BX | בסיס - Base | אוגר רב-תכליתי | BL | BH | EBX |
| משמש לאכסון כללי, אך במיוחד לפנייה לאזורים בזיכרון, כשמקטע ברירת המחדל שלו הוא DS. | |||||
| CX | מונה - Counter | אוגר נתונים | CL | CH | ECX |
| משמש לאכסון כללי, אך במיוחד כמונה חזרות לפקודות מסוימות. | |||||
| DX | נתונים - Data | אוגר נתונים | DL | DH | EDX |
| משמש לאכסון כללי. | |||||
| SI | אינדקס מקור - Source Index | אוגר כתובת | - | - | ESI |
| משמש כמצביע לאזור בזיכרון אשר יהווה מקור לפעולות זיכרון מסוימות. פועל לרוב מול מקטע DS. | |||||
| DI | אינדקס יעד - Destination Index | אוגר כתובת | - | - | EDI |
| משמש כמצביע לאזור בזיכרון אשר יהווה יעד לפעולות זיכרון מסוימות. פועל לרוב מול מקטע ES. | |||||
| BP | מצביע בסיס המחסנית - Stack Frame Base Pointer | אוגר כתובת | - | - | EBP |
| משמש גישה מהירה ומבוקרת למידע הנמצא במחסנית. פועל לרוב מול מקטע SS. | |||||
| SP | מצביע המחסנית - Stack Pointer | אוגר אינדקס | - | - | ESP |
| עוקב אוטומטית אחר המיקום האחרון במחסנית. | |||||
| CS | מקטע הקוד - Code Segment | אוגר אינדקס | - | - | - |
| מצביע למקטע בזיכרון בו נמצא הקוד הנוכחי. עובד מול IP. | |||||
| DS | מקטע הנתונים - Data Segment | אוגר אינדקס | - | - | - |
| מצביע למקטע בזיכרון המכיל את הנתונים של התוכנה. | |||||
| ES | מקטע מוסף - Extra Segment | אוגר אינדקס | - | - | - |
| מצביע מוסף לפנייה לאזורי זיכרון אחרים. | |||||
| SS | מקטע המחסנית - Stack Segment | אוגר אינדקס | - | - | - |
| מצביע למקטע בזיכרון המכיל את המחסנית. | |||||
| IP | המצביע לפקודה - Instruction Pointer | אוגר מיוחד | - | - | EIP |
| מצביע לאזור בזיכרון בו נמצאת הפקודה הבאה לביצוע. לא ניתן לשנות או לקרוא אותו ישירות. | |||||
עם כניסת ה-386 הוספו לארכיטקטורה עוד שני אוגרי מקטע:
| FS | מקטע מוסף | אוגר אינדקס | - | - | - |
| GS | מקטע מוסף | אוגר אינדקס | - | - | - |