۲۵-فروردین-۱۳۹۱, ۱۲:۰۴:۴۶
تفاوت روال و ماکرو:
فراخواني يک روال در يک زبان سطح بالا به تعدادي دستورالعملهاي مربوط به انتقال دادن آرگومانهاي ذکر شده در دستورالعمل call، کامپايل ميشود.
فراخواني يک ماکرو عملاً به دستورالعملهاي داده شده در تعريف ماکروي مزبور بسط داده شده و آرگومانها جايگزين پارامترهاي استفاده شده در تعريف ماکروي مربوط ميگردد.
کد يک ماکرو با هر بار فراخواني آن تکرار ميشود، اما تنها يک نسخه از کد يک روال وجود دارد.
با توجه به اينکه هيچگونه بالا سري براي انتقال دادن پارامترها يا براي دستورالعملهاي call و ret وجود ندارد، معمولاً ماکروها سريعتر از فراخواني روالها اجرا ميشوند ولي اين معمولاً به بهاي طولاني تر شدن کد هدف در مورد فراخواني ماکروها، صورت ميگيرد.
تعريف يک ماکرو در بين دستورات MACRO و ENDM قرار داده ميشود.
شکل تعريف يک ماکرو به صورت زير ميباشد:
جایگاه ماکرو :
تعريف يک ماکرو ميتواند در هر جاي برنامه اسمبلي ذکر شود به شرط اينکه اين تعريف قبل از فراخوانيهاي آن بيايد.
تعدادی ماکرو که بطور معمول در برنامه های اسمبلی استفاده می شود را برای شما قرار میدم!
( ساخت فایل - نوشتن در فایل - بستن فایل - مکان نما - ClrScr - و... )
http://www.iranled.com/forum/thread-17486.html
فراخواني يک روال در يک زبان سطح بالا به تعدادي دستورالعملهاي مربوط به انتقال دادن آرگومانهاي ذکر شده در دستورالعمل call، کامپايل ميشود.
فراخواني يک ماکرو عملاً به دستورالعملهاي داده شده در تعريف ماکروي مزبور بسط داده شده و آرگومانها جايگزين پارامترهاي استفاده شده در تعريف ماکروي مربوط ميگردد.
کد يک ماکرو با هر بار فراخواني آن تکرار ميشود، اما تنها يک نسخه از کد يک روال وجود دارد.
با توجه به اينکه هيچگونه بالا سري براي انتقال دادن پارامترها يا براي دستورالعملهاي call و ret وجود ندارد، معمولاً ماکروها سريعتر از فراخواني روالها اجرا ميشوند ولي اين معمولاً به بهاي طولاني تر شدن کد هدف در مورد فراخواني ماکروها، صورت ميگيرد.
تعريف يک ماکرو در بين دستورات MACRO و ENDM قرار داده ميشود.
شکل تعريف يک ماکرو به صورت زير ميباشد:
ليست پارامترها MACRO نام
دستورالعملهاي زبان اسمبلي
ENDM
دستورالعملهاي زبان اسمبلي
ENDM
جایگاه ماکرو :
تعريف يک ماکرو ميتواند در هر جاي برنامه اسمبلي ذکر شود به شرط اينکه اين تعريف قبل از فراخوانيهاي آن بيايد.
تعدادی ماکرو که بطور معمول در برنامه های اسمبلی استفاده می شود را برای شما قرار میدم!
( ساخت فایل - نوشتن در فایل - بستن فایل - مکان نما - ClrScr - و... )
http://www.iranled.com/forum/thread-17486.html