אסמבלר (Assembler; בעברית מאסף) היא תוכנה שמתרגמת תוכנית הכתובה בשפת סף (שפת סף = שפה קרובה לפקודות מעבד, עם שמות קצרים לפעולות) לשפת מכונה (שפת מכונה = רצף ביטים שהמעבד יודע להריץ). בשפת אסמבלי יש בדרך כלל התאמה חד-חד ערכית בין פקודת אסמבלר אחת ובין פקודת שפת מכונה אחת.
המעבד מבצע פקודות בסיסיות המאוחסנות בזיכרון. כתיבה ישירה של ביטים היא קשה ומתישה, לכן נוצרו שפות תכנות. אחרי שפות סף הגיעה רב של שפות עיליות. מהדר שפת עילית (מהדר = תוכנה שמתרגמת שפה עילית לשפת מכונה) ממיר פקודה של שפה עילית לסדרה של פקודות מכונה. עם הזמן מהדרי שפות עיליות השתפרו, והפכו לנפוצים יותר משום שהם מקלים על התכנות.
עד תחילת שנות ה-70 התכנות באסמבלר היה נפוץ בגלל משאבי מחשב מוגבלים והצורך בקוד חסכוני. כעת מרבית הפיתוח נעשה בשפות עיליות, אך אסמבלר נשאר חשוב בפיתוח מערכות הפעלה ובחלקים שדורשים ביצועים מקסימליים.
כדי לקצר קודים נפוצו הוראות מכלול הנקראות 'מקרו' (Macro statements). מקרו היא פקודה שמוחלפת בסדרה של פקודות אסמבלר, וכך חוסכת חזרות.
לכל מעבד יש שפת מכונה משלו, ולכן לכל מעבד גם יש אסמבלר ייעודי. יש אסמבלרים מותאמים למעבדי אינטל ולמעבדים אחרים.
קיימים אסמבלרים שמתאימים למעבדי אינטל. אלה מאפשרים לכתוב פקודות שמתאימות לאינסטרוקציות של אינטל.
למעבדי אינטל יש כמה אסמבלרים נפוצים שמשמשים מפתחים של מערכות ותוכנות קריטיות.
הוראות אסמבלי בסיסיות המופיעות בטבעיות בקוד כוללות העברת נתונים בין רישומים וזיכרון (למשל mov), קריאה לשירותי מערכת באמצעות הפרעה (interrupt, בקיצור int) וסיום התוכנית.
הדוגמה מציגה קוד באסמבלי ל-MASM שיוצר תוכנית DOS שמציגה "Hello, world!". הקוד מגדיר את המחרוזת בזיכרון, טוען את כתובת ההודעה לרישום המתאים, קורא ל־int 21h כדי להדפיס את המחרוזת ואז מבצע קריאת מערכת נוספת כדי לסיים את התוכנית. ניתן לראות פקודות כמו mov (העברת ערך) ו-int (קריאת שירות מערכת).
אסמבלר הוא תוכנה. היא משנה תוכניות משפת סף (שפת סף = מילים קצרות שמייצגות פקודות למחשב) לשפת מכונה (שפת מכונה = ביטים שהמחשב מבין).
בכל פקודת אסמבלי יש בדרך כלל פקודת מכונה אחת. ככה קל לראות מה כל פקודה עושה.
פעם, לפני שנות ה-70, אנשים כתבו הרבה באסמבלר. זה היה כי מחשבים היו קטנים וחסכוניים. היום כותבים יותר בשפות שקלות יותר, אבל אסמבלר עדיין שימושי בחלקים שצריכים מהירות.
יש גם 'מקרו' (מקרו = פקודה אחת שמחליפה כמה פקודות). זה חוסך כתיבה של דברים שחוזרים על עצמם.
כל מעבד (החלק במחשב שמבצע פקודות) מדבר שפה משלו. לכן יש אסמבלרים שונים לכל מעבד.
יש אסמבלרים שעובדים על מעבדי אינטל.
באסמבלר עושים דברים כמו להעביר ערכים (mov), לקרוא שירותי מערכת (int) ולסיים תוכנית.
יש דוגמה שמדפיסה "Hello, world!". הקוד שומר את ההודעה בזיכרון, מבקש מהמערכת להדפיס אותה, ואז סוגר את התוכנית.
תגובות גולשים