دستورالعمل پردازش دادههای رشتهای
رشته عبارتاز مجموعهای از کاراکترهای به هم پیوسته و متوالی است. رشته میتواند حاوی هر کارکتر قابل چاپ باشد. مقایسه رشتهها، کپیرشتهها، جستجو در رشته و انتقال آنها نمونههای از اعمال رشتهای هستند.
معرفی دستورالعملهای رشتهای
این دستورالعملها عبارتنداز movs برای کپی کردن رشتهها، lods برای بارکردن رشتهها، stos برای ذخیره رشتهها، cmps برای مقایسه رشتهها، scas برای جستجوی رشتهها به کار میروند. دستورالعملهای رشتهای میتوانند بر روی بایت، کلمه یا کلمه مضاعف عمل کنند، لذا هر دستورالعمل رشتهای سه حالت دارد : بایت ،کلمه، کلمهمضاعف. برای مثال سه حالت دستورالعمل movs عبارتنداز movsb , movsw movsd در این حالتها حرف S به معنی رشته، B به معنی بایت، W به معنی کلمه و D به معنی کلمه مضاعف است.
ویژگیهای دستورالعملهای رشتهای
دستورالعملهای رشتهای بر روی دو رشته عمل میکنند برای مثال رشتهای را در رشته دیگر کپی میکند، رشتهای را در ثباتی ذخیره مینمایند و یا رشتهای را از ثبات به محلی از حافظه بار میکند. به هر حال، دستورالعملهای رشته دو عملوند دارند ولی عملوندها جزئی از دستورات نیستند. عملوندهای دستورالعملهای رشتهای، قبل از اجرای دستورات باید مقداردهی شوند به همین دلیل، این عملوندها را عملوندهای ضمنی گویند.
دستورالعملهای رشتهای معمولاً بر روی دو رشته عمل میکنند که یکی از آنها رشته منبع و دیگری را رشته مقصد گویند. آدرس رشته منبع باید در ثبات SI و آدرس رشته مقصد باید در ثباتDI قرار گیرد. ثبات SI معمولاً با ثبات DS به صورت DS:SI و ثبات DI معمولاً با ثبات DS به صورت ES:DI بکار میروند، لذا در بسیاری از دستورالعملهای رشتهای هنگامی که فایل EXE ایجاد میشود ثبات ES باید با آدرس موجود در ثبات DS مقدار دهی شوند.
تکرار اجرای دستورالعملهای رشتهای
دستورالعملهای رشتهای میتوانند رشتههایی از یک بایت، یک کلمه یا یک کلمه مضاعف را پردازش کنند. اگر طول رشته بیش از یک کلمه مضاعف باشد، باید اجرای دستورات رشتهای برای پردازش تکرار شود. برای مثال، برای کپی کردن رشتهای به طول10 میتوان دستور movsb را 10 بار تکرار کرد. برای تکرار اجرای دستورات رشتهای از پیشوند rep استفاده میشود. تعداد دفعات تکرار باید در ثبات cx قرار گیرد. پیشوند rep، دستور پردازش رشته را آنقدر تکرار میکند تا ثبات cx به صفر برسد. تکرار اجرای دستورات با پیشوندهای دیگری نیز امکانپذیر است.
دستورات repz ,repnz ,repne ,repe ,rep
این دستورات به صورت کلی repz ,repnz ,repne ,repe ,rep instruction
مورد استفاده قرار میگیرند و باعث اجرای دستورجلوی آن تعداد مشخص میشوند. ثبات CX تعداد تکرار اجرای دستور را مشخص میکند و پس از اجرای هر بار این دستورات یک واحد از ثبات CX کم میشود.