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

תוכן שנמחק תוכן שנוסף
Guycn2 (שיחה | תרומות)
מ הפעיל הגנה על הדף "אסמבלי x86/שגרות": השחתות רבות: טרול ([עריכה=רק משתמשים ותיקים מורשים] (פוקעת ב־15:28, 3 במאי 2018 (UTC)))
מ ←‏השגרה: הגהה
שורה 3:
שגרה = פונקציה = שיטה = פרוצדורה
 
שגרה היא תת תכנית המאפשרת לנו לבצע פעולה אחת או יותר בתכנית אסמבלי. כל שגרה מתחילה בשורת החותמת של השם וPROCו-PROC, כל שגרה מסתיימת בשורת חותמת, שם השגרה וENDPו-ENDP. חובה לכתוב בשגרה את הפקודה ret. פקודה זו גורמת לאסמבלי לחזור חזרה לתכנית הראשית. יש אפשרות שפקודה זו תגיע עם מספר לידהעל ידה. לדוגמא: ret 4, ret 8.
השגרה יכולה להכתב בתחילת התכנית ובסוף התכנית. אנו נכתוב אותה בסוף התכנית. מטרת השגרה להקל עלינו כאשר התכנית מורכבת, המבנה נכון יותר, פשוט יותר וחוסך לנו טעויות. כדי לזמן את השגרה יש לכתוב בתכנית הראשית פקודת זימון. הפקודה היא:
שם השגרה call
כידוע ישנו אוגר הנקרא הipip. אוגר זה מכיל את כתובת ההוראה לביצוע. כאשר הפקודה מתבצעת הipה-ip מקבל את ההוראה הבאה לביצוע. כאשר האסמבלי פוגש את פקודת call הוא שומר את כתובת הפקודה הבאה לביצוע כך שבסיום השגרה נחזור חזרה לכתובת השמורה בipב-ip.
 
== מבנה השגרה וקריאתה ==