שפת מכונה – הבדלי גרסאות
תוכן שנמחק תוכן שנוסף
אין תקציר עריכה |
Crazy Ivan (שיחה | תרומות) אין תקציר עריכה |
||
שורה 1:
'''שפת מכונה''' היא אוסף של הוראות המובן בצורה ישירה (ללא כל תרגום) על ידי ה[[מעבד]] של ה[[מחשב]], ומבוצע על-ידיו בעת פעולת המחשב.
[[פקודה (מחשב)|הוראות]] (פקודות) שפת המכונה
בשל הקושי של [[בן אדם|בני אדם]] לפענח ולזכור את משמעותם של רצפים ארוכים של סיביות, יצירת תוכניות שימושיות בשפת מכונה כמעט ואינה מעשית. לצורך כך נוצר ייצוג של כל פקודה בשפת מכונה בעזרת רצף תווים נהיר יותר, בדרך כלל רצף אותיות היוצר מילה שמשמעותה מרמזת על הפקודה בשפת מכונה שאותה היא מייצגת. ייצוג כזה נקרא [[שפת סף]] (Assembly) והוא הקרוב ביותר לשפת המכונה. [[אסמבלר]] הוא [[מהדר]] המתרגם פקודות משפת סף אל שפת מכונה על מנת שיהיה ניתן להריצן על ידי מעבד. [[תכנות]] בשפת מכונה או בשפת סף נקרא [[תכנות low-level]] ובראשית ימי המחשוב התכנות נעשה בצורה זו. החל מ[[שנות ה-50 של המאה ה-20]] החלו ליצור [[שפת תכנות|שפות תכנות]] היוצרות אבסטרקציה גבוהה יותר, זאת באמצעות פקודות הדומות יותר לשפת בני אדם וניתוק הקשר בין פקודה יחידה בשפת מכונה לפקודה יחידה בשפת התכנות, כך שפקודה אחת בשפת התכנות עשוייה להיות מתורגמת בזמן ה[[הידור]] לרצף פקודות בשפת מכונה. שפות כאלו נקראות [[שפת תכנות עילית|שפות תכנות עיליות]] ועיקר התכנות כיום מתבצע בעזרתן.
בעשרות ה[[שנה|שנים]] הראשונות לקיום המחשב המגמה הייתה להרחיב את אוצר ההוראות של המעבד, כך שניתן יהיה לבצע פעולות מורכבות יותר באמצעות הוראה בודדת. מעבדים בעלי אוצר הוראות מורחב מכונים מעבדי [[CISC]] (כלומר: Complex Instruction Set Computer). למגמה זו היה יתרון בולט בעת
במעבדים מסוימים לכל ההוראות בשפת המכונה אורך אחיד, ובאחרים קיימות הוראות באורכים אחדים (לפי קוד ההוראה יודע המעבד את אורכה).▼
מניתוח כמותי של התפלגות הפקודות הנוצרות על ידי המהדרים, בין אם בשל מבנה המהדר ובין אם בשל נוהגי כתיבת התוכנה, נמצא כי רפרטואר הפקודות של המעבד אינו מנוצל, וכי במרבית המקרים (כ־80 אחוז) מנוצל אך מעט (כ־20 אחוז) מרפרטואר הפקודות של המעבד. כתוצאה מכך חל מהפך מחשבתי בכל הנוגע לעיצוב ארכיטקטורת המעבד הרצויה, אשר הוביל לפיתוח מעבד בעל [[מספר]] הוראות מצומצם ([[RISC]] - Reduced Instruction Set Computer). מספר ההוראות המצומצם, הביא להקטנת שטח הפיסה, להגברת יעילות המיתוג הפנימי ול[[מהירות]] ביצוע גבוהה מאוד של כל הוראה, כך שבמבחני השוואת ביצועים, ובעיקר במבחני יחס תועלת, עשויים ביצועיו של מעבד זה להיות טובים מאלה של מעבד בעל מספר הוראות רב. כיום הבדל זה זניח כי מצד אחד גם מעבדי CISC ממירים את הפקודות לפקודות מיקרוקוד פשוטות ומצד שני התגלה כי היתרון מבחינת התכנון של המעבד של RISC איננו משמעותי (את רוב התוצאות החיוביות ניתן לממש גם ב־CISC), כתוצאה מכך ההבדל המעשי בין שני הסוגים נעלם כמעט לחלוטין.
▲
▲בעשרות ה[[שנה|שנים]] הראשונות לקיום המחשב המגמה הייתה להרחיב את אוצר ההוראות של המעבד, כך שניתן יהיה לבצע פעולות מורכבות יותר באמצעות הוראה בודדת. מעבדים בעלי אוצר הוראות מורחב מכונים מעבדי [[CISC]] (כלומר: Complex Instruction Set Computer). למגמה זו היה יתרון בולט בעת [[תכנות]] ב[[שפת סף]], אך בעת המעבר לתכנות ב[[שפה עילית|שפות עיליות]] יתרון זה מתגמד. {{מקור}}
▲מניתוח כמותי של התפלגות הפקודות הנוצרות על ידי המהדרים, בין אם בשל מבנה המהדר ובין אם בשל נוהגי כתיבת התוכנה, נמצא כי רפרטואר הפקודות של המעבד אינו מנוצל, וכי במרבית המקרים (כ־80 אחוז) מנוצל אך מעט (כ־20 אחוז) מרפרטואר הפקודות של המעבד. כתוצאה מכך חל מהפך מחשבתי בכל הנוגע לעיצוב ארכיטקטורת המעבד הרצויה, אשר הוביל לפיתוח מעבד בעל [[מספר]] הוראות מצומצם ([[RISC]] - Reduced Instruction Set Computer). מספר ההוראות המצומצם, הביא להקטנת שטח הפיסה, להגברת יעילות המיתוג הפנימי ול[[מהירות]] ביצוע גבוהה מאוד של כל הוראה, כך שבמבחני השוואת ביצועים, ובעיקר במבחני יחס תועלת, עשויים ביצועיו של מעבד זה להיות טובים מאלה של מעבד בעל מספר הוראות רב. כיום הבדל זה זניח כי מצד אחד גם מעבדי CISC ממירים את הפקודות לפקודות מיקרוקוד פשוטות ומצד שני התגלה כי היתרון מבחינת התכנון של המעבד של RISC איננו משמעותי (את רוב התוצאות החיוביות ניתן לממש גם ב־CISC), כתוצאה מכך ההבדל המעשי בין שני הסוגים נעלם כמעט לחלוטין. {{מקור}}
==ראו גם==
|