סט פקודות
ערך מחפש מקורות
| ||
ערך מחפש מקורות | |
סט פקודות הוא אוסף של הוראות בשפת מכונה שמכיר מעבד. על מנת לבצע פעולה כלשהי המעבד צריך לקבל פקודות ב"שפה" שהוא מבין, סט הפקודות הוא בעצם אוצר המילים של המעבד.
המעבד מבצע רצף של פקודות מכונה (instructions) הניתנות לו. פקודת מכונה היא רצף של סיביות, שהמעבד מבצע בהתאם להן פעולה מתאימה, בדרך כלל פעולה פשוטה ביותר. פקודות המכונה כוללות:
- קריאת וכתיבת ערכים לזיכרון
- שינוי ערכי אוגרים ("רגיסטרים")
- חישובים אריתמטיים במספרים שלמים (חיבור, חיסור, כפל, חילוק)
- פעולות בינאריות לוגיות (AND, OR, NOT, XOR)
- בדיקת תנאים לוגיים
- פעולות המשפיעות על מצב המעבד עצמו. פעולות אלו בדרך כלל ספציפיות לכל סוג מעבד, ולעיתים קרובות אינן נתמכות על ידי מהדרים ("קומפיילרים")[1]
- פעולות בקרת זרימה, המשנות את כתובתה של הפקודה הבאה שתתבצע.
לפקודות המכונה מבנה מוגדר היטב, הכולל את קוד הפקודה (האופרטור), ולעיתים הנתונים שעליהם פועלת פקודה זו ("אופרנדים").
אוסף כל פקודות המכונה של מעבד מסוים הוא סט פקודות שלו. כתיבתן של פקודות מכונה נעשית באופן ישיר למדי באמצעות שפת סף, ובאופן עקיף באמצעות שפה עילית, שהמהדר מתרגם אותה לפקודות מכונה.
סט הפקודות הנפוץ ביותר בשנות העשרים והשלושים של המאה ה-21 במעבדים של מחשבים אישיים הוא x86. ניתן להשתמש ולתכנת בסט פקודות זה בעיקר תוך שימוש בשפת תכנות שנקראת שפת סף. כיום מתכנתים ממעטים להשתמש בשפת סף, ורוב התכנות נעשה תוך שימוש בשפות עיליות, כאשר תרגום הקוד לשפת מכונה מתבצע על ידי מהדרים (קומפיילרים, כמו ב-C++), מפרשים (כמו המפרשים של פייתון, Perl, או PHP), או "מכונה וירטואלית" (כמו ב-Java וסביבת NET.). למרות זאת, לפעמים מתכנת יעדיף לכתוב קוד בשפת סף, בעיקר כדי לשלוט על תכונות של המעבד שאינן כלליות ואינן ניתנות לשליטה בשפה עלית. בדרך כלל גרעין מערכת הפעלה מכיל קטעים מצומצמים בשפת סף.