close
دانلود فیلم
زیربرنامه در اسمبلی

زير برنامه (procedure) مجموعه ای از دستورات است که يکبار تعريف و به دفعات استفاده می شود. با بکارگيری زيربرنامه خوانائی برنامه بالاتر رفته و از تکرار دستورات مشابه جلوگيری می شود. علاوه براين اشکال زدائی و تغيير برنامه آسان تر انجام گيرد.

وقتی يک زيربرنامه فراخوانی می شود کنترل اجرای برنامه به زيربرنامه هدايت می شود. آدرس دستورالعمل بعدی در پشته ذخيره می شود بنابراين هنگامی که زيربرنامه اجرا شد کنترل اجرا قادر خواهد بود به خط بعد از فراخوانی زيربرنامه بر می گردد.


تعريف زيربرنامه

تعريف زيربرنامه بايد در سگمنت کد انجام بگيرد. از دو راهنمای proc و endp برای تعيين بلاک زيربرنامه استفاده می شود.

ProcedureName PROC [NEAR|FAR]
     ...
     RET
ProcedureName ENDP

Procedurename نام زيربرنامه است که قبل از راهنماهای proc و endp قرار می گيرد و بايد يکسان باشد. عملوند near يا far اختياری است. کلمه near به اسمبلر می گويد که زيربرنامه از نوع داخلی است. برای تعريف يک زيربرنامه خارجی از کلمه far به جای near استفاده می شود.

دستور ret باعث خروج از زيربرنامه و برگشت به فراخواننده می شود.


نکته. اگر عملوندی مقابل تعريف زيربرنامه قرار نگيرد از نوع near در نظر گرفته می شود.
نکته. اگرچه تعريف يک زيربرنامه که عملا داخلی است به صورت خارجی اشکالی ايجاد نمی کند ولی بهتر است اين کار را نکنيد.


مثال. زيربرنامه جمع دو عدد در AH و AL و نگهداری مجموع در ثبات BX.

Adding PROC near
     mov BX, AL
     add BX, AH
     ret
Adding ENDP

مثال: زيربرنامه Putc برای نمايش کاراکتری که در ثبات al قرار دارد.

Putc PROC
     mov DL,AL
     mov AH,02
     int 21h
     ret
Putc ENDP

به کانال تلگرام سایت ما بپیوندید