אסמבלי x86/מבט כללי על אסמבלר: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Galzigler (שיחה | תרומות)
Galzigler (שיחה | תרומות)
אין תקציר עריכה
שורה 4:
האסמבלר מותאם בדרך כלל לשפת מכונה ספציפית, אם כי אסמבלרים מסוימים יכולים לטפל בתוכניות הכתובות בשפות סף של מעבדים שונים.
 
== תהליך ההידור ==
==מהות האסמבלר==
קוד המקור של התוכנית בשפת אסמבלי נשמר בסיומת asm.
 
בתהליך הידור הקובץ ע"י מהדר (Compiler) המתאים לשפת האסמבלי שבה נכתב הקוד, המהדר יצור קובץ obj, תרגום של התכנית שכתבנו בשפת מכונה, במידה ולא ייתקל בשגיאות תחביר במהלך ההידור. לאחר מכן יש לשלוח קובץ זה (obj) ללינקר (Linker), תוכנית המבצעת המרה של קובץ obj לפורמט בו מערכת הפעלה מסויימת מתנהגת עם יישומים, במילים אחרות: התאמה ל־ API של מערכת ההפעלה, וכך הוא יוצר קובץ בר הרצה עבורה (במקרה של עבודה בסביבה של Windows הסיומת של הקובץ המהודר תהיה exe). ניתן לשלוט בפעילות תקינה של תוכנית ההרצה ע"י תוכנת Deubg מתאימה.
ה[[W:מעבד|מעבד]] של המחשב מבצע את הפקודות המאוחסנות ב[[W:זכרון מחשב|זכרון]] של המחשב. פקודות אלה הן פקודות אלמנטריות ביותר, כשכל פקודה בנויה מרצף קצר של [[W:סיבית|סיביות]], שמשמעותו מובנת על-ידי המעבד. רצף זה קרוי שפת מכונה. כתיבה ישירה של רצף הביטים שיבצע תוכנית משמעותית היא פעולה מייגעת. כדי לקצר תהליך זה נוצרו [[:קטגוריה:שפות תכנות|שפות התכנות]]. מרבית שפות התכנות הן [[:קטגוריה:שפות מהודרות|שפות עיליות]], שבהן לפקודות דמיון מסוים לשפה טבעית. כל פקודה בשפה עילית מתורגמת על-ידי ה[[W:מהדר|מהדר]] לסדרה ארוכה של פקודות בשפת מכונה. קדמה לשפות העיליות שפת '''אסמבלי''' (או '''אסמבלר'''), הקרויה גם שפת סף, שבה יש [[W:התאמה חד-חד ערכית|התאמה חד-חד ערכית]] בין הפקודות שכותב המתכנת ובין הפקודות בשפת המכונה, כלומר כל פקודת אסמבלר מתורגמת לפקודה אחת בשפת מכונה.
 
עד לתחילת שנות ה־ 70 של המאה העשרים היה התכנות באסמבלר נפוץ למדי ואפילו דומיננטי, עקב משאבי המחשב המוגבלים שעמדו לרשות המתכנתים, והיכולת ליצור קוד חסכוני ביותר (יחסית לזה שנוצר בשפות עיליות) באמצעות האסמבלר. בעקבות המעבר לשפות עיליות נותר האסמבלר בעיקר ככלי למתכנתי [[:קטגוריה:מערכות הפעלה|מערכות הפעלה]], לפיתוח חלקי תוכנה הדורשות ביצועים מהירים במיוחד ול[[w:הנדסה הפוכה|הנדסה הפוכה]] של תוכנות.
 
לקיצור תהליך התכנות של פעולות נפוצות נוספו לאסמבלר הוראות מכלול (Macro statements) לביצוע פעולות אלה, שכל אחת מהן התפתחה לסדרה של פקודות אסמבלר.
 
לכל מעבד שפת מכונה משלו, ובהתאם לכך אסמבלר משלו.
 
דוגמה לפקודה באסמבלר: <code>L R8, DATA</code>. פקודה זו (באסמבלר של מחשבי IBM Mainframe) טוענת לאוגר 8 את המלה הנמצאת בזכרון בכתובת DATA.