|
صفحة: 307
יש להבדיל הבדל מוחלט בין העברת פרמטרים למקרו לבין העברת פרמטרים לפונקציה י בעוד שפרמטרים לפונקציה מייצגים ערכים או כתובות של משתנים , פרמטרים למקרו מייצגים קטעי טקסט . למעשה , מנגנון העברת פרמטרים לפונקציה פועל בזמן ריצת התוכנית , ואילו מנגנון העברת פרמטרים למקרו מופעל בזמן ביצוע האסמבלי , והוא מטפל בהחלפת קטעי טקסט ו בזמן שכפול המקרו , הטקסט של הפרמטר האקטואלי מחליף את הפרמטר הפורמלי המתאים . לדוגמה , בתכנית שבה זומן המקרו : swap a , b לאחר ההידור והקישור של התכנית יוחלפו הפרמטרים בכתובות של , & , b בקובץ הריצה ובהוראה המתייחסת לפרמטר first תוצב הכתובת [ 0000 ] ובהוראה המתייחסת לפרמטר second תוצב הכתובת . [ 0001 ] באופן דומה , בתכנית שבה זומן המקרו writeChar 'A' המציג תו על הצג , מוחלף הפרמטר char בתו . 'A' מובן שעלינו להקפיד להעביר למקרו מחרוזת תקינה , אם איננו רוצים לקבל שגיאה . לדוגמה , הזימון של writeChar add יגרום לשגיאה , משום שהמהדר יחליף את הפרמטר char במילה add ונקבל את ההוראה השגויה MOV DL , add פרמטרים פורמליים משמשים לייצוג ערכים מספריים או מחרוזות , אבל הם יכולים לשמש גם לייצוג שמות אוגרים , ואפילו לייצוג קוד פעולה והוראות . ? לדוגמה , נוסיף למקרו swap את שם האוגר בו נשתמש swap MACRO tempreg , first , second הגדרת תווית ; jnb in order cmp tempreg , second mov tempreg , first LOCAL in order
|
|