אסמבלי x86

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי

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

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

כמו בכל אחד מהספרים, מהדפים ומהנושאים בוויקיספר, גם כאן אתם מוזמנים להוסיף את הפרקים שלדעתכם חסרים. כל פעולה שעשויה לעזור תתקבל בברכה, כולל הערות ובקשות בדף השיחה של הספר.


אסמבלי x86











אסמבלי x86 (באנגלית: x86 Assembly) היא שפת סף שנוצרה על ידי חברת "אינטל", במקור עבור המעבד 8086, מעבד 16־ביט.

במקור, כתיבת תוכניות הייתה על ידי שימוש בקוד הבינארי שהוענק להוראות־המעבד (הנקרא גם OPCODE) ובעזרת שימוש בכתובות וערכים בינאריים (ידועים גם כאופרנדים), אך שיטה זו אינה נוחה במיוחד, ובעקבות כך פותחה שפה בסיסית שתקל על המתכנתים, בכך שקוד הוראת־המעבד יהיה שם בעל משמעות, ויהיה ניתן לעבוד עם ערכים עשרוניים והקסאדצימליים ולמצביעים, אוגרים, דגלים יהיו שמות נוחים יותר לעבודה.

רוב ההוראות בשפה זו פשוט מוחלפות לשורת קוד אחת בשפת המכונה (פונקציה חד-חד-ערכית ועל), כאשר שם הפקודה ושמות האופרנדים מוחלפים בערכים בינאריים או כתובתם כערך בינארי. למרות זאת, באסמבלי קיימות כמה תכונות שלא קיימות בשפת מכונה, כמו הענקת שם משתנה לתא בזיכרון, שימוש במאקרו (הוראות מכלול – מאפשרת למתכנת לכתוב קוד פעם אחת ולאחר תהליך הקומפילציה הוא ייכתב מספר פעמים. השימוש בהוראה זו הוא במקרים בהם כתיבת אותו קוד מספר פעמים יהיה יעיל יותר מאשר שימוש בלולאה או מתודה) וכו'.

עד לתחילת שנות ה־70 של המאה העשרים היה התכנות באסמבלר נפוץ למדי ואפילו דומיננטי, עקב משאבי המחשב המוגבלים שעמדו לרשות המתכנתים, והיכולת ליצור קוד חסכוני ביותר (יחסית לזה שנוצר בשפות עיליות) באמצעות האסמבלר.

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