در مطالب قبلی شما را با انواع دستورات حلقه تکرار در زبان اسمبلی آشنا کردیم .در این مطلب شما را دستور LOOP در این زبان آشنا خواهیم کرد.

در زبان اسمبلی از دستور loop برای ساختن حلقه های شمارشی کاهشی با بدنه کوچک استفاده می شود. فرم کلی آن به صورت زیر است:

loop target

دستورالعمل loop ثبات CX را یک واحد کم می کند سپس اگر مقدار جدید CX مخالف با صفر باشد به آدرس target پرش می کند. اگر CX برابر با صفر باشد دستور بعدی اجرا می شود.

ثبات CX به عنوان شمارنده عمل می کند و تعداد تکرار حلقه باید ابتدا در ثبات CX قرار بگیرد.

مثال. دستورات زیر مجموع اعداد ۱ تا ۱۰ را محاسبه و در ثبات AX ذخیره می کند.

mov AX, 0
mov CX, 10
lbl:
add AX, CX
loop lbl

توجه کنید چون این دستور ابتدا از CX یک واحد کم می کند، اگر CX قبلا حاوی صفر باشد بعد از کاهش برابر با مقدار ۶۵۵۳۵ می شود بنابراین حلقه ۶۵۵۳۶ بار تکرار خواهد شد.

دستورالعمل loop مشابه دستورات پرش کوتاه محدوده به ۱۲۸ بایت است و برای حلقه با بدنه کوچک مناسب است. برای حلقه های تکرار با بدنه بیشتر می توانید از دستورات پرش برای ساختن حلقه تکرار استفاده نمائید.

اگرچه از نام دستورالعمل loop اینطور برمی آید که حلقه تکرار ایجاد می کند اما به خاطر داشته باشید که تمام کاری که انجام می دهد این است که از ثبات CX یک واحد کم کرده اگر بعد از کاهش CX حای صفر نبود به آدرس مقصد پرش می کند.

دستورالعمل loop روی هیچکدام از ثبات ها تاثیر ندارد.