فایل کامل و عالی تحقیق در مورد دستورالعمل پردازش دادههای رشتهای
فرصتی استثنایی: دریافت فایل فایل کامل و عالی تحقیق در مورد دستورالعمل پردازش دادههای رشتهای به همراه پاورپوینت رایگان!
یک پیشنهاد ویژه برای شما!
اگر به دنبال یک منبع کامل و کاربردی هستید، با تهیه فایل فایل کامل و عالی تحقیق در مورد دستورالعمل پردازش دادههای رشتهای، یک پاورپوینت حرفهای را بهصورت هدیه دریافت خواهید کرد.
چرا فایل فایل کامل و عالی تحقیق در مورد دستورالعمل پردازش دادههای رشتهای یک انتخاب عالی است؟
- ۴۰ صفحه محتوای دقیق: فایل کامل و عالی تحقیق در مورد دستورالعمل پردازش دادههای رشتهای شامل ۴۰ صفحه استاندارد و آماده استفاده است.
- مطابق با اصول علمی و پژوهشی: فایل کامل و عالی تحقیق در مورد دستورالعمل پردازش دادههای رشتهای بر اساس جدیدترین استانداردهای آموزشی تنظیم شده و برای تحقیقات دانشگاهی مناسب است.
- ساختاری حرفهای و منظم: تمامی بخشهای فایل با دقت و انسجام کامل طراحی شدهاند.
- یک هدیه ارزشمند: علاوه بر فایل کامل و عالی تحقیق در مورد دستورالعمل پردازش دادههای رشتهای فایل کامل و عالی تحقیق در مورد دستورالعمل پردازش دادههای رشتهای، یک پاورپوینت زیبا و استاندارد نیز بهصورت رایگان دریافت میکنید.
- آماده برای ارائه: بدون نیاز به ویرایش، میتوانید از فایل فایل کامل و عالی تحقیق در مورد دستورالعمل پردازش دادههای رشتهای و پاورپوینت همراه آن در جلسات، سمینارها و کنفرانسها استفاده کنید.
- محتوای کاربردی و بهروز: مطالب فایل کامل و عالی تحقیق در مورد دستورالعمل پردازش دادههای رشتهای به شما در فهم بهتر موضوع کمک خواهد کرد.
- ویرایش آسان: بهراحتی میتوانید فایل کامل و عالی تحقیق در مورد دستورالعمل پردازش دادههای رشتهای فایل کامل و عالی تحقیق در مورد دستورالعمل پردازش دادههای رشتهای را ویرایش کرده و متناسب با نیازهای خود سفارشی کنید.
- کیفیت تضمینشده: این محصول با بالاترین کیفیت ارائه شده و شامل پشتیبانی کامل است.
بخشی از متن فایل کامل و عالی تحقیق در مورد دستورالعمل پردازش دادههای رشتهای :
دستورالعمل پردازش دادههای رشتهای
رشته عبارتاز مجموعهای از کاراکترهای به هم پیوسته و متوالی است. رشته میتواند حاوی هر کارکتر قابل چاپ باشد. مقایسه رشتهها، کپیرشتهها، جستجو در رشته و انتقال آنها نمونههای از اعمال رشتهای هستند.
تعریف رشتهها
برای تعریف رشتهها از شبه دستورات DB یا DW استفاده میشود. نمونه هایی از تعریف رشته در زیر آمده است.
۱۰۰ dup (‘*’) Db Str1
۵۰ dup () Dw Str2
۷۵ dup () Dw Str3
“ abcdef ” Dd Str4
جدول حالتهای سهگانه دستورالعملهای رشتهای:
دستورالعمل اصلی دستورالعمل بایت دستورالعمل کد دستورالعمل کلمه مضاعف
MOVS MOVSB MOVSW MOVSD
LODS LODSB LODSW LODSD
STOS STOSB STOSW STOSD
CMPS CMPSB CMPSW CMPSD
SCAS SCASB SCASW SCASD
معرفی دستورالعملهای رشتهای
این دستورالعملها عبارتنداز 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 مقدار دهی شوند.
;address of data segment Ax , datasg Mov
. Dx , ax Mov
. Es , ax Mov
تکرار اجرای دستورالعملهای رشتهای
دستورالعملهای رشتهای میتوانند رشتههایی از یک بایت، یک کلمه یا یک کلمه مضاعف را پردازش کنند. اگر طول رشته بیش از یک کلمه مضاعف باشد، باید اجرای دستورات رشتهای برای پردازش تکرار شود. برای مثال، برای کپی کردن رشتهای به طول۱۰ میتوان دستور movsb را ۱۰ بار تکرار کرد. برای تکرار اجرای دستورات رشتهای از پیشوند rep استفاده میشود. تعداد دفعات تکرار باید در ثبات cx قرار گیرد. پیشوند rep، دستور پردازش رشته را آنقدر تکرار میکند تا ثبات cx به صفر برسد. تکرار اجرای دستورات با پیشوندهای دیگری نیز امکانپذیر است.
دستورات repz ,repnz ,repne ,repe ,rep
این دستورات به صورت کلی repz ,repnz ,repne ,repe ,rep instruction
مورد استفاده قرار میگیرند و باعث اجرای دستورجلوی آن تعداد مشخص میشوند. ثبات CX تعداد تکرار اجرای دستور را مشخص میکند و پس از اجرای هر بار این دستورات یک واحد از ثبات CX کم میشود.
:Rep دستور جلوی خود را تا صفر شدن ثبات CX تکرار میکند
:Repe دستور جلوی خود را مادامیکه ثبات CX مخالف صفرباشد تکرار میکند
: Repz دستور جلوی خود را مادامیکه ثبات ZF=0 باشد تکرار میکند
:Repne دستور جلوی خود را مادامیکه ثبات CX=0 باشد تکرار میکند
:Repnz دستور جلوی خود را مادامیکه ثبات ZF=0 باشد تکرار میکند
تعیین جهت پردازش رشته
رشتهها را میتوان از چپ به راست و یا از راست به چپ پردازش کرد. چهت پردازش رشته توسط فلگ DF مشخص میشود. اگر این فلگ برابر با صفر باشد، پردازش از چپ به راست است و اگر برابر یک باشد پردازش از راست به چپ است. دستور CLD مقدار صفر و دستور STD مقدار یک را در این فلگ قرار میدهد.
دستور CLD باعث میشود که بیت DF از ثبات وضعیت را صفر میکند که در عملیات روی رشتهها مانند movs,cmps و … مورد استفاده قرار میگیرد. هنگام استفاده از این دستور در هنگام انتقال رشتهای عمل مورد نظر از چپ به راست انجام میشود.
دستور STD باعث میشود که در بیت DF مقدار یک قرار گیرد. هنگام استفاده از این دستور در عملیات رشتهای عمل مورد نظر از راست به چپ انجام میشود.
کپی کردن رشتهها
برای کپی کردن رشتهها از محلی از حافظه به محل دیگری در حافظه از دستور movs استفاده میشود.
این دستور به صورت کلی movs dest-string , source-string
movs
مورد استفاده قرار میگیرد.
حالتهای مختلف این دستور به صورت زیر به کار میروند:
MOVSB
MOVSW
MOVSD
قبل از اجرای این دستورالعملها، آدرس محلی از حافظه که حاوی رشته است(منبع) در DI:SI و ادرس محلی از حافظه که رشته در آنجا کپی میشود در ES:DI قرار میگیرد. در ابتدای یک برنامه EXE باید ثبات ES را همراه ثبات DS مقداردهی کرد و با دستور LEA آدرس رشتهها را در ثبات SI و DI قرار داد. اگر جهت پردازش رشته از چپ به راست باشد، با هر با اجرای دستور movs یک بایت، یک کلمه، کلمه مضاعف به ثباتها SI و DI اضافه میشود. ولی اگر جهت پردازش رشته از راست به چپ باشد، همین مقدار از این ثباتها کسر میگردد.
دستورالعمل LODS
این دستور به صورت کلی LODS source
مورد استفاده قرار میگیرد.
این دستورالعمل با حالت LODSB یک بایت را به ثبات AL و با حالت LODSW یک کلمه را به ثبات AX و با حالت LODSD یک کلمه مضاعف را به ثبات EAX بار میکند. آدرس حافظه منبع باید در ثباتهای DS:SI باشد در این دستورات مقصد، ثباتهای AL, AX یا EAX پس از اجرای این دستورات بسته به فلگ جهت یک دو یا چهار واحد به ثبات SI اضافه یا از آنها کم میشود.
در غالب موارد می توان از دستور MOV برای اینکار استفاده کرد ولی دستور MOV کد ماشین سه بایتی و دستورالعمل LODS کد یک بایتی تولید میکند چون این دستورالعمل ثباتها را پر میکند و نیازی به اجرای پیشوند REP نیست.
دستورالعملSTOS
این دستور به صورت کلی Stos dest,string
مورد استفاده قرار میگیرد.
این دستورالعمل در حالت STOSB محتویات ثبات AL و در حالت STOSW محتویات ثبات AX و در حالت STOSD محتویات ثبات EAX را به ترتیب در یک بایت، یک کلمه و یک کلمه مضاعف بار می کند. آدرس محل حافظه باید در ثباتهای ES:DI قرار داشته باشد. بر حسب اینکه مقدار فلگ DF چقدر باشد ۱، ۲، یا ۴ واحد به ثبات DI اضافه و یا از آن کم میگردد.
با استفاده از پیشوند REP در دستور STOS میتوان محلی از حافظه را مقدار اولیه داد در این صورت تعداد بایتها، کلمات یا کلمات مضاعف در ثبات CX قرار میگیرد.
مقایسه رشته
برای مقایسه رشتهها از دستورالعمل CMPS استفاده میشود.
این دستور به صورت کلی Lable cmp operand1,operand2
مورد استفاده قرار می گیرد.
آدرسهای دو رشتهای که مقایسه میشوند در ثباتهای DS:SI و ES:DI قرار دارند. این دستور شکل CMPSB یک واحد و در شکل CMPSW دو واحد و در شکل CMPSD چهار واحد به ثباتهای SI و DI اضافه و یا از آنها کم میکند. فلگهالی AF, CF, OF PF, SF و ZF با دستورات تاثیر میپذیرند. با استفاده از پیشوند REP و طولی که در ثبات CX قرار میگیرد این دستورات میتوانند رشتههای با هر طول را با هم مقایسه کند. پیشوند REP شکلهای دیگری نیز دارد که معمولا در مقایسه رشتهها مورد استفاده قرار می گیرند و عبارتند از :
REPE یا REPZ :
دستورالعمل مقایسه رشتهها را تا زمانی اجرا میکنند که CX مخالف صفر بوده بایتها و کلمات مقایسه شده با هم مساوی باشند.
REPNE یا REPNZ:
دستورالعملهای مقایسه رشتهها را تا زمانی اجرا میکند CX مخالف صفر بوده، بایتها و کلمات مقایسه شده مساوی نباشند.
مقایسه رشتهها الفبا عددی صورت میگیرد. این دستورالعملها برای مقایسه مقادیر جبری که حاوی علامت باشند مفید نیستند برای مثال دو رشته “arbs” و “arbn” را در نظر بگیرید برای مقایسه این دو رشته حرف “a” از رشته اول با حرف“a” از رشته دوم مقایسه میشود که با هم مساویند. سپس حرف “r” از رشته اول با حرف “r” در رشته دوم مقایسه میشوند که آنها نیز مساویند سپس حرف سوم رشته اول، “b” با حرف سوم رشته دوم “b” مقایسه میشوند این دو
حرف نیز با هم مساویند چهارمین حرف رشته اول “s” به چهارمین حرف رشته دوم “b” مقایسه میشود که حرف “s” در مرتبه بالاتری قرار دارد یعنی اصطلاحا می گویند s از n بزرگتر است لذا رشته “arbs” از رشته “arbn” بزرگتر تلقی میشود.در مقایسه رشتهها کاراکترهای دو رشته با هم مقایسه میشوند و پس از رسیدن به اولین مورد اختلاف کاراکتری که بزرگتر باشد، رشته حاوی آن کاراکتر بزرگتر است دستورالعمل مربوط به مقایسه یک بایتی، REPE CMPSB می باشد.
جستجوی رشته
برای جستجو رشته از دستور SCAS استفاده میشود.
این دستور به صورت کلی Stos dest,string
مورد استفاده قرار میگیرد.
این دستور شباهت زیادی با دستور CMPS دارد و تفاوت آنها این است که در دستور SCAS یک بایت، کلمه یا کلمه مضاعف در یک رشته جستجو میگردد. بایت، کلمه یا کلمه مضاعف مورد جستجو باید در ثبات AL, AX یا EAX باشد. رشتهای که باید عمل جستجو در آن صورت گیرد محلی از حافظه است که آدرس آن در ES:DI قرار دارد با هر بار اجرای این دستور ۱ و ۲ یا ۴ واحد به ثبات DI اضافه یا از آن کم می شود با اجرای این دستور فلگهای AF, CF, DF, PC, و ZF مقدار میگیرند. وقتی دستورالعملهای SCAS با پیشوندهای REP به کار می روند هر رشتهای با هر طول را جستجو میکنند.
نوشتن برنامه های مقیم در حافظه
یکی از دلایل اصلی عمومیت یافتن زبان اسمبلی ،توانایی آن برای ساختن برنانامه هایی است که در پشت صحنه اجرا شود ،که به اصطلاح برنامه های pop_up یا مقیم در حافظه نامیده میشود این برنامه ها چندان رواج دارند که نمیتوان از آنها صرف نظر کر د،و نوشتنم این برنامه ها هم مشکل نیست .
از مثالهای متداول برنامه های مقیم در حافظه میتوان به ماشین حسابی اشاره کرده که حتی در هنگام اجرای یک برنامه دیگر ، می توان با زدن کلیدی آن را فعال کرده و استفاده نمود ، یا ساعتی که همیشه در صفحه تصویر موجود است ، برنامه های کمکی که شماره تلفن می گیرند ، مطبی را روی کاغذ چاپ می کنند ، اشکالات دیسک را برطرف می نماید و یا حتی امکان اجرای دستورات DOS را فراهم می سازند و از این قبیل برنامه ها.
تعریف برنامه مقیم در حافظه بسیار ساده است : این برنامه ها حتی اگر برنامه دیگری را هم اجرا کنید ذر حافظه باقی می مانند عمو ماً COMMAND.COM برنامه ها را درست بعد از خود DOS در حافظه لود کرده و اجرا می نماید و بعد از اتمام برنامه حافظهای را که به آن اختصاص داده بود گرفته و آزاد می نماید در برنامه های مقیم در حافظه مرحله آخر به ترتیب فوق نیست در عوض فضای اختصاص یافته به برنامه جزو فضای مربوط به DOS در می آید و برنامه بعدی که می خواهید اجرا کنید نمی تواند از این فضا استفاده کرده و در نتیجه بعد از آن قرار می گیرد به این ترتیب برنامه جزو DOS در میآید فقط فایلهای COM را با توجه به ساختمان جمع و جورشان میتوان مقیم در حافظه کرد مگر آنکه پیشبینیهای لازم را بعمل آورده باشید .
نوشتن برنامههای مقیم در حافظه :
اگر که ممکن است مشکل بظر بیآید اما مقیم ساختن برنامهها در حافظه کاری آسان است مشکل اصلی که باید حل شود این است : حتی اگر برنامهای را به DOS ضمیمه کنید تا این برنامه فرا خوانده نشود به خودی خود کاری انجام نمیدهند فقط مقیم ساختن برنامه به معنی اجرا شدن آن نیست – برنامه در حافظه باقی میماند تا دوباره اجرا شود مثلاً تکه برنامه زیر را میتوان به سادگی با استفاده از یکی از دو وقفه DOS که برای مقیم ساختن برنامهها طراحی شدهاند در حافظه مقیم کرد .
این کار را به سادگی میتوان با تنظیم چند رجیستر و استفاده از یکی از دو وقفه فوق بجای وقفه INT 20H که عموماً برای اتمام برنامه بکار میرود انجام داد اگرچه با این کار دستورات در حافظه جای میگیرند اما عملاً فقط بایتهای در حافظه هستند تا CS:IP به این دستورات اشاره نکند دلیلی برای اجرا شدن وجود ندارد به همین ترتیب برنامههای DOS و BIOS هم خودبه خود اجرا نمیشوند بلکه باید فراخوانی گردند .
عملاً فقط یک راه حل برای اجرای چنین برنامههای مقیم وجود دارد و آن راه عبارت است از وقفههای سخت افزاری یا نرمافزاری ، وقفه های سخت افزاری توسط برنامه ایجاد نمیشود بلکه موقعی تولید میگردندکه وضعیت خاصی در دستگاههای جانبی کامپیوتر بوجود آمده باشد مثلاً هنگامی که کلیدی را در صفحه کلید میزنید ، یک وقفه ، وقفه ۹ ایجاد میگردد دیسک درایو هم در اثر وقوع عمل خاص وقفه تولید میکند و ساعت داخلی کامپیوتر هم به همین صورت ( عملاً وقفه ساعت هر ثانیه ۲/۱۸ بار اتفاق میافتد ) .
وقفه سخت افزاری باعث میشود که کامپیوتر اجرای برنامه را موقتاً متوقف کرده – وقفه – و به وقفه رسیدگی کند وقفه های سخت افزاری را می توان توسط برنامه با استفاده از دستور CLI از کار انداخت ( بجز تعدادی از وقفههای سطح پایین ) این فلاگ داخلی فقط برای این کار طراحی شده است : مشخص کند که آیا باید به وقفه رسیدگی گردد یا از آن صرف نظر شود مثلاً اگر برنامه شما دستور CLI اجرا کند کلیدهای تایپ شده دریافت و ذخیره نخواهند شد با دستور STI میتوان این فلاگ را ست کرده و امکان پاسخ گویی مجدد به وقفهها را فراهم کرد .
از لحاظ تکنیکی برنامههای مقیم در حافظه را میتوان با فشار کلید فوری hot key کلیدی که با زدن آن مثلاً ماشین حساب یا هر برنامه دیگر مقیم در حافظه ظاهر می گردد ، فعال نمود این کار به دلیل آن است که برنامه های فوق از وقفه صفحه کلید استفاده می کند . وفقه های سخت افزاری از انجهت که با هر بار وقوع آنها می توان برنامهای را اجرا کرد بسیار شبیه به وقفه های نرم افزاری هستند . در این صورت برنامه اجرا شده برنامه مقیم در حافظه مورد نظر ما خواهد بود . برای فعال کردن برنامه های مقیم در حافظه ما از وقفه های سخت افزاری استفاده میکنیم نه وقفه های نرم افزاری .دلیل این امر ان است که وقفه های نرم افزاری فقط هنگام اجرای برنامه ایجاد می شود اما وقفه های سخت افزاری را می توان در هر لحظه دل خواه با زدن یک کلید فوری ایجاد کرد .
وقفه های سخت افزاری و نرم افزاری از لحاظ اینکه ریز پردازنده چگونه آدرس برنامه مورد نظر را پس از وقوع وقفه پیدا می کند مشابه هم هستند . مثلاً اگر برنامه شما یک دستور INT 10H را اجرا کند پردازنده عمل جستجوی آدرس را به همان ترتیب انجام می دهد که در صورت زدن یک کلید و دریافت وقفه ۹ انجام خواهد داد .
وقفه چگونه کار میکند
کار ی که عملا در اثر بروز وقفه (سخت افزاری یا نرم افزاری ) انجام می شود به شرح زیر است :
آدرس برنامه مربوطه را از یک جدول تهیه شده برای این منظور موسوم به جدول بردارهای وقفه واقع در قسمت ابتدای حافظه لود می کند این جدول دقیقا در ابتدای حافظه قرار دارد و از آدرس ۰۰۰۰:۰۰۰۰ شروع میشود .
- لینک دانلود فایل بلافاصله بعد از پرداخت وجه به نمایش در خواهد آمد.
- همچنین لینک دانلود به ایمیل شما ارسال خواهد شد به همین دلیل ایمیل خود را به دقت وارد نمایید.
- ممکن است ایمیل ارسالی به پوشه اسپم یا Bulk ایمیل شما ارسال شده باشد.
- در صورتی که به هر دلیلی موفق به دانلود فایل مورد نظر نشدید با ما تماس بگیرید.