close
تبلیغات در اینترنت
فیلم و کتاب دات آی آر
پیام مدیر سایت: به سایت ما خوش آمدید ، امیدوارم که از کیفیت مطالب ما راضی باشید در صورتی خرابی لینک های دانلود به ما گزارش بدهید تا سریعا لینک های دانلود فعال بشود

عنوان :  دانلود رایگان جزوه اسمبلی دکتر همایون پور دانشگاه امیرکبیر

زبان  : فارسی

نوع فایل : ZIP/PDF

حجم فایل : 50 MB

پسوورد:  www.filmoketab.ir

کسب درآمد با فروش فایل های سایت ما

دستورالعمل های انتقال داده مقادير را از يک محل به محل ديگر کپی می کنند.

MOV
XCHG
LEA


MOV

ساده ترين دستورالعمل mov است که دارای دو عملوند است. اين دستورالعمل محتوای دومين عملوند خود را در اولين کپی می کند. فرم کلی آن به صورت زير است:

mov Dest, Source

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

دستور mov مشابه دستور انتساب در زبان های سطح بالا است ( Dest := Source; در زبان Pascal يا Dest=Source; در زبان C).

با توجه به نوع عملوندها، انواع مختلفی از دستورالعمل mov را می توان داشت. متداولترین آنها عبارتند از:

mov register, register
mov memory, register
mov register, memory
mov memory, immediate data
mov register, immediate data
mov AX/AL, memory
mov memory, AX/AL
mov segment register, memory 16
mov segment register, register 16
mov register 16, segment register
mov memory 16, segment register

چند موضوع مهم درباره دستور mov را باید همواره بخاطر داشت:

1. انتقال حافظه به حافظه وجود ندارد. يعنی هردو عملوند همزمان نمی توانند عملوند حافظه ای باشند.
2. عملوندها می تواند از نوع بايت يا کلمه باشند. اما هردو عملوند حتما بايد هم اندازه باشند (برای مثال دستور mov AX,BL اشتباه است). اين برای عملوند های حافظه و ثبات هم باید رعایت شود (اگر متغيری را يک بايتی تعريف کنيد و آنرا در ثبات AX منتقل کنيد اسمبلر پيغام خطا صادر می کند).
3. با اين دستور نمی توان يک داده فوری را در يک ثبات سگمنت منتقل کرد.
4. هر دو عملوند نمی توانند ثبات سگمنت باشند.
5. گونه هائی از دستور mov سريع تر و کوتاهتراز بقيه هستند. برای مثال هر دو دستور mov ax, mem و mov reg, mem داده ای را از حافظه به ثبات کپی می کنند اما دستورالعمل اول کوتاهتر و سريع تر از دومی است.
6. می توان يک مقدار فوری را در يک محل حافظه منتقل کرد. در اين حالت داده فوری به اندازه عملوند مقصد گسترش داده می شود (مگراينکه بزرگتر از مقصد باشد که خطا صادر می شود). البته اسمبلر نمی تواند اندازه عملوند حافظه را تعيين کند مگر اينکه عملوند حافظه ای به صورت يک متغير در برنامه اعلان شده باشد. برای حل اين مشکل از عملگر های byte ptr و word ptr برای تعيين اندازه عملوند حافظه ای می توان استفاده کرد.


مثال. دستور زيرداده فوری 10h را به اندازه يک کلمه گسترش داده و در محلی که BX به آن اشاره می کند ذخيره می کند.

mov word ptr [bx], 10h

مثال. دستورات زير داده فوری 40h را در ثبات سگمنت ES ذخيره می کند. ثبات AX به عنوان واسطه بکار رفته است. هر کدام از ثبات همه منظوره را می توان به جای AX بکار برد.

mov AX, 40h
mov ES, AX


دستور mov روی هيچکدام از فلگ ها تاثيری ندارد.


XCHG

دستورالعمل xchg محتوای دو عملوند خود را جابجا می کند. فرم کلی آن به صورت زير است:

xchg Operand1, Operand2

مقدار هردو عملوند در اثر اجرا تغيير می کند.

چهار شکل خاص برای اين دستور وجوددارد:

xchg register, memory
xchg register, register
xchg ax, register16

ترتيب علموندها اهمیت ندارد. می توانید xchg mem,reg یا xchg reg,mem را بنویسید نتیجه فرقی ندارد. اکثر اسمبلرها بطور خودکار کد کوتاهتر را انتخاب می کنند.

هردو عملوند باید یک اندازه باشند.

دستور xchg روی هيچيک از فلگ ها تاثیر نمی گذارد.


LEA

دستورالعمل (load effective address) lea برای مقداردهی اشاره گرها استفاده می شود. فرم خاص آن به صورت زیر است:

lea register16, memory

اين دستور آدرس موثر يک محل خاص از حافظه را درون یک ثبات همه منظوره ذخيره می کند. منظور از آدرس موثر آدرس نهائی حافظه بعد از کلیه محاسبات آدرسی است.


مثال. دستور زير مقدار 1234h را در ثبات AX قرار می دهد.

lea AX, DS:[1234h]


دستور mov ax, immediate data هم همین عمل را انجام می دهد. تفاوت آنها در اين است که دستورالعمل lea محاسبه آدرسی و انتقال داده را همزمان انجام می دهد.


مثال. دستور زير آدرس حاصل از محاسبه BP+SI+4 را درثبات AX قرار می دهد. ابتدا مقادير را بهم جمع کرده سپس در ثبات منتقل می کند.

lea bx, 4[bp+si]


دستورالعمل lea روی فلگ ها تاثير ندارد.

کسب درآمد با فروش فایل های سایت ما

موضوعات مطلب:
آمار سایت
  • تعداد مطالب: 3958
  • ورودی گوگل امروز: 59
  • ورودی گوگل دیروز: 80
  • بازدید کل: 5,972,141
  • تاریخ امروز: شنبه 30 دی 1396
  • تبلیغات در سایت تبلیغات در سایت
    آخرین مطالب
  • سوالات آزمون استخدامی تخصصی کامپیوتر
  • جزوه دستنویس و تایپ شده و ترجمه دکتر محمدزاده درس داده های حجیم
  • جزوه دستنویس و تایپ شده شبکه پیشرفته - دکتر رامین کریمی
  • جزوه دکتر محسن محرمی - درس ارزیابی سیستم های کامپیوتری
  • مجموعه سوالات آزمون های استخدامی
  • بهسازی سیگنال گفتار در حوزه زمان فرکانس
  • بررسی تأثیر شرط اجل در عقد بیع و مقایسه ی آن با کنوانسیون بیع بین المللی کالا مصوب ۱۹۸۰ وین
  • ارزیابی پایداری گذرای سیستم قدرت با استفاده از داده های واحد های اندازه گیری فازور
  • پایان نامه ارائه مدلی برای سیستم­های توصیه گر در شبکه های مبتنی بر اعتماد
  • ارائه رویکردی جهت نگاشت سرویس های ITIL بر مبنای نقاط عملکردی (KPI) به سیستم مدیریت امنیت اطلاعات
  • پایان نامه بررسی مسئولیت مدنی متصدیان حمل و نقل
  • پایان نامه جایگاه حقوق متهم در قانون آیین دادرسی کیفری جدید
  • نقش بازاریابی در ایجاد تقاضای بهینه برای خدمات بانكی و روشهای كاربردی آن
  • کار تحقیقی بررسی عقد جعاله در حقوق مدنی
  • بررسی صلاحیت در رسیدگی به موضوع حقوقی
  • صفحه اصلیآرشیو مطالبنقشه سایتطراح قالبتماس با ما