לדלג לתוכן

אסמבלי x86/מבט כללי על אסמבלר

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











אסמבלר (באנגלית: Assembler) היא תוכנית מחשב המתרגמת (או מהדרת) תוכנית שנכתבה בשפת סף (Assembly) לשפת מכונה הניתנת לביצוע על ידי המחשב.

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

תהליך ההידור

[עריכה]

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

כאשר המהדר של שפת אסמבלי - האסמבלר - מהדר קובץ של קוד אסמבלי, הוא יוצר קובץ מסוג obj, בהנחה שלא נתקל בשגיאות תחביר. קובץ obj הוא תרגום של התכנית שכתבנו לשפת מכונה. את אותו קובץ obj יש לשלוח למקשר (linker), אשר מבצע המרה של קובץ obj לקובץ בפורמט אותו ניתן להריץ במערכת ההפעלה. ההמרה הזו מתאימה את התוכנה לממשק העבודה של מערכת ההפעלה, או בשפה טכנית: ה־API של מערכת ההפעלה. במערכות הפעלה שונות יכולים להיווצר קבצי הרצה מסוגים שונים. ב־Windows, לדוגמה, תוכנות הן קבצים בפורמט הנקרא PE ובעלי סיומת .exe, ובלינוקס תוכנות הן הקבצים בפורמט ELF בדרך כלל, וללא סיומת מיוחדת.

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