logo

מהי שפת מכונה?

שפת מכונה היא שפה ברמה נמוכה המורכבת ממספרים בינאריים או ביטים שמחשב יכול להבין. זה ידוע גם כקוד מכונה או קוד אובייקט וקשה מאוד להבין אותו. השפה היחידה שהמחשב מבין היא שפת מכונה. כל התוכניות ושפות התכנות, כגון Swift ו-C++, מייצרות או מריצים תוכניות בשפת מכונה לפני שהן מופעלות במחשב. כאשר מתבצעת משימה מסוימת, אפילו התהליך הקטן ביותר, שפת המכונה מועברת למעבד המערכת. מחשבים מסוגלים להבין נתונים בינאריים רק מכיוון שהם מכשירים דיגיטליים.

מהי שפת מכונה

במחשב, כל הנתונים כמו סרטונים, תוכניות, תמונות מיוצגים בבינארי. המעבד מעבד קוד מכונה זה או נתונים בינאריים כקלט. לאחר מכן, יישום או מערכת הפעלה מקבלים את הפלט המתקבל מה-CPU ומציג אותו ויזואלית. לדוגמה, קוד ASCII 01000001 מייצג את האות 'A' בשפת המכונה, אך הוא מוצג על המסך כ-'A'.

קוד מכונה שונה משמש על ידי ארכיטקטורות מעבדים שונות; עם זאת, קוד המכונה כולל 1 ו-0. במקרה, בהשוואה למעבד Intel x86 המכיל ארכיטקטורת CISC, מעבד PowerPC זקוק לקוד שונה, המכיל ארכיטקטורת RISC. עבור ארכיטקטורת המעבד הנכונה, על מנת להפעיל תוכנית בצורה נכונה, מהדר חייב להדר קוד מקור ברמה גבוהה.

עבור תוכנית או פעולה, שפת המכונה המדויקת יכולה להיות שונה לפי מערכת ההפעלה, המתארת ​​כיצד מהדר כותב פעולה לשפת מכונה. באופן דומה, לתצלום יש למעלה מעשרות אלפי נתונים בינאריים שקובעים את הצבע של כל פיקסל.

תוכניות מחשב נוצרות בשפת תכנות אחת או יותר (לדוגמה, Java, C++ או Visual Basic). יש להרכיב את קוד התוכנית שדרכו המחשב יכול להבין אותו, שכן שפות תכנות המשמשות ליצירת תוכניות מחשב לא ניתנות להבנה ישירה על ידי המחשב. כאשר הקוד של התוכנית מורכב, הוא מומר ל-

 01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100 

שפת מכונה, כך שהמחשב יוכל להבין אותה.

דוגמאות לשפת מכונה

הטקסט ' שלום עולם ' ייכתב בשפת המכונה:

דוגמה נוספת לשפת מכונה מובאת להלן, שתציג את האות 'A' 1000 פעמים על המסך.

 169 1 160 0 153 0 128 153 0 129 153 130 153 0 131 200 208 241 96 

ביצוע קוד מכונה

כל משפחת מעבדים עוקבת אחר קבוצת הוראות שתוכנתה במיוחד, והוראות אלו מונחות לפי קוד מכונה. כל הרכיבים הקטנים הניתנים לפעולה, הרכיבים המרכיבים את התפקוד הכולל של המכונה, נקבעים על ידי סידור מסוים של יחידות בסיסיות. כל יחידות המידע הבסיסיות מיוצגות בבינארי, שיש לו ערך אחד או שניים של '1' או '0'. מכיוון שכל מחלקה של מעבד דורשת תצורה מבנית המתאימה לסט ההוראות הייחודי שלה, כל ערכות ההוראות הבסיסיות של תצורות קוד המכונה מקושרות למחלקות מעבדים בהתאמה דומה.

שימושים בשפת מכונה

שימושים נפוצים בשפת מכונה נדונים להלן:

  • שפת מכונה היא שפה ברמה נמוכה שמכונות מבינות אך שבני אדם יכולים לפענח באמצעות אסמבלר.
  • מהדר ממלא תפקיד חשוב בין בני אדם למחשבים מכיוון שהוא ממיר שפת מכונה לקוד או שפה אחרים המובנים לבני אדם.
  • שפת ההרכבה מוקדשת להבנת שפת המכונה מכיוון שהיא קרע שלה.

ההבדל בין שפת מכונה לשפת הרכבה

מהי שפת מכונה

יש הבדלים שונים בין שפת מכונה לשפת הרכבה. להלן טבלה המכילה את כל ההבדלים ביניהם.

מכונת שפות שפת אסמבלי
שפת מכונה היא שפת תכנות ברמה נמוכה הבנויה ממספרים בינאריים או ביטים שניתן לקרוא רק על ידי מכונות. זה ידוע גם כקוד מכונה או קוד אובייקט, שבו הוראות מבוצעות ישירות על ידי המעבד. שפת הרכבה היא שפה לאדם בלבד שאינה מובנת למחשבים. כתוצאה מכך, הוא פועל כקישור בין שפות תכנות ברמה גבוהה לשפות מכונה, המחייב שימוש ב-assembler כדי להמיר הוראות לקוד מכונה או אובייקט.
שפת מכונה כוללת ספרות בינאריות (0 ו-1), הקסדצימלית ואוקטלית עשרונית, שניתן להבין רק על ידי מחשבים ואינה ניתנת לפענוח על ידי בני אדם. מנמוניקות כגון Mov, Add, Sub, End ואחרות מרכיבות את שפת ה-assembly, אותה אנשים יכולים להבין, להשתמש וליישם.
בשפת מכונה, לא ניתן לבצע תיקון שגיאות ושינויים, והתכונות של שפות המכונה משתנות בהתאם. לשפת Assembly יש ערכות הוראות קונבנציונליות, כמו גם את היכולת לתקן שגיאות ולשנות תוכניות.
שפות מכונה תלויות בפלטפורמה וקשה מאוד להבין על ידי בני אדם. התחבירים של שפות Assembly דומים לשפה האנגלית; לכן, קל להבין אותו על ידי אדם.
שפת מכונה לא ניתנת ללמידה מכיוון שהיא קשה לשינון ומשמשת כקוד מכונה בלבד. קל לשנן את שפת ההרכבה, והיא משמשת ליישומים/מכשירים מבוססי מיקרו-מעבד ומערכות בזמן אמת.
בשפת מכונה, כל הנתונים נמצאים בפורמט בינארי שהופך אותם למהירים בביצוע. בהשוואה לשפת מכונה, מהירות הביצוע של שפת ההרכבה איטית.
רצפי הביטים משמשים את שפת המכונה כדי לתת פקודות. אפס מייצג את המצב כבוי או שקר, בעוד שאחד מייצג את המצב הפעיל או האמיתי. זה תלוי במעבד להמרה של שפת תכנות ברמה גבוהה לשפת מכונה. במקום להשתמש ברצפים גולמיים של סיביות, שפת ההרכבה משתמשת בשמות וסמלים של 'מנמוניות'; לכן, משתמשים לא צריכים לזכור קודי הפעלה עם שפת assembly. בשפות assembly, בני אדם יכולים למפות את הקוד לקוד מכונה, והקודים מעט יותר קריאים
שפות התכנות מהדור הראשון הן שפות מכונה, שאינן זקוקות למתרגם. הדור השני של שפות התכנות הוא שפות assembly, המשתמשות ב-assembler כמתרגם כדי להמיר את הזיכרון לצורה מובנת למכונה.
שפת המכונה תלויה בחומרה ואינה מאפשרת שינויים. שפת ההרכבה אינה ניידת, והיא תלויה במכונה וניתנת לשינוי בקלות.
בתחביר של שפת מכונה, יש יותר סיכוי לשגיאות. בהשוואה לשפת מכונה, יש פחות סיכויים לשגיאות תחביר בשפת ההרכבה.