8086 Assembler Tutorial for Beginners (Part
10)
Macros |
הדרכה בתכנות אסמבלר 8086 למתחילים (חלק
10)
פקודות מקרו |
Macros are just like procedures, but not really. Macros look like procedures, but they exist only until your code is compiled, after compilation all macros are replaced with real instructions. If you declared a macro and never used it in your code, compiler will simply ignore it. emu8086.inc is a good example of how macros can be used, this file contains several macros to make coding easier for you. |
פקודות מקרו הם כמו פרוצדורות, אבל לא באמת. מקרו נראה כמו פרוצדורות, אבל
הם קיימים רק עד שהצופן הוא מהודר. לאחר ההידור כל מקרו מוחלף עם הוראות
אמיתיות. אם אתה מגדיר מקרו ולאורך התוכנית לא משתמש בו, המהדר פשוט מתעלם ממנו. הקובץ emu8086.inc הוא דוגמה טובה של איך ניתן להשתמש במקרו, הקובץ הזה מכיל כמה קבוצות של הוראות מקרו להקלת עבודת המתכנת. |
Macro definition - הגדרת מקרו
name MACRO [parameters,...] |
Unlike procedures, macros should be defined above the code that uses it, for example: |
שונה מפרוצדורות, פקודות מקרו חייבות להיות מודגרות מעל כל הפקודות של
התוכנית. למשל: |
MyMacro MACRO p1, p2, p3 |
The above code is expanded into: |
הצופן הקודם מפושט כ: |
MOV AX, 00001h |
Some important facts about macros and procedures:
|
כמה עובדות חשובות על מקרו ופרוצדורות:
MyMacro
MyMacro 1, 2, 3
|
Macros are expanded directly in code, therefore if there are labels inside the macro definition you may get "Duplicate declaration" error when macro is used for twice or more. To avoid such problem, use LOCAL directive followed by names of variables, labels or procedure names. For example: |
קטע של מקרו מפושט ישירות בצופן, לכן אם יש תוויות בתוך הגדרת המקרו נקבל
את הערת שגיאה: "Duplicate declaration" (הגדרה
כפולה) כאשר מפעילים את המקרו פעמיים או יותר. כדי להימנע מהבעיה הזאת, משתמשים בפקודת: LOCAL ולאחריה שמות המשתנים, תוויות או פרוצדורות. למשל: |
MyMacro2 MACRO |
If you plan to use your macros in several programs, it may be a good idea to place all macros in a separate file. Place that file in Inc folder and use INCLUDE file-name directive to use macros. See Library of common functions - emu8086.inc for an example of such file. |
אם אתה מתכונן להשתמש בפקודות המקרו שלך בכמה תוכניות, מומלץ למקם כל
פקודות המקרו בקובץ נפרד. שים את הקובץ הזה בתיקייה INC
והשתמש בפקודה: "שם_קובץ Include" . ראה דוגמה של קובץ מסוג זה ב: Library of common functions - emu8086.inc. |
Copyright 2002-2003 - Emu8086, Inc. All rights reserved. - Portions Copyright 1997-2003 Barry Allyn. All rights reserved.
Hebrew Version Copyright COVAL Computer Software - Copyright © 2003 R&D Private Advisers All rights reserved.