محل لوگو

دانلود تحقیق در موردپروژه اسمبلی


دانلود تحقیق در موردپروژه اسمبلی

نام فایل : پروژه اسمبلی

فرمت : .ppt

تعداد صفحه/اسلاید : 33

حجم : 0 مگابایت


بنام خدا
پروژه اسمبلیساعت بدون آلارم
مقدمه
میباشد unisells.ir منبع اصلی این پروژه
توضیحات از کتاب برنامه نویسی به زبان اسمبلی از مهندس قمی و چندین سایت اینترنتی میباشد .
معرفی مجموعه دستورات این برنامه
ORG
اين شبه دستور افست ادرس محل ذخيره دستور يا داده بعدي را تعيين ميكند . شكل كلي ان بصورت زير است
ORG ادرس
مثلا دستور ORG1000H
سبب میشود که انتقال برنامه به خانه ی هزارم حافظه برود و از آنجا شروع به ادامه ی اجرای برنامه کند استفاده از اين دستور در هر مكاني از برنامه اختياري است . و هر گاه كاربر لازم ديد كه ادامه برنامه در خانه ديگري از حافظه اجرا شود از اين دستور استفاده ميكند . اما استفاده از اين دستور در برنامه هاي کام بلافاصله قبل از شروع كد نويسي برنامه اجباري است


آدرس دهی فوری یا بلافاصله:در صورتی که بخواهیم یک عدد ثابت نه یک آدرس را در مکانی از حافظه قرار دهیم از آدرس دهی فوری استفاده می کنیم.مشخصه آدرس دهی فوری استفاده از پیشوند # قبل از عدد است.در صورتی که در یک دستور از عددی استفاده کنیم اگر عدد بدون پیشوند باشد نوع آدرس دهی مستقیم است و در صورتی که عدد پیشوند # داشته باشد آدرس دهی فوری خواهد بود.
MOVاين دستور براي كپي كردن يك خانه از حافظه يا داده ها در بايت ها ي حافظه استفاده مي شود.توجه كنيدكه اين دستوريك دستوربايتي است.
فراخوانی زیر برنامه
برای فراخوانی زیر برنامه از دستور
CALL
استفاده میشود که به شکل زیر است
CALLآدرس
آدرس را میتوان مستقیم یا غیر مستقیم در نظر گرفت
هنگامی که این دستور اجرا میگردد دو عمل انجام میشود
1.آدرس برگشت به زیر برنامه فراخوان در پشته ذخیره میشود
2.کنترل اجرای برنامه به آدرس شروع زیر برنامه میرود
برگشت از زیر برنامه
برای برگشت به زیر برنامه فراخوان از دستور
RET/RETF
استفاده میگردد شکل کلی دستور به صورت زیر است
RET/RETF مقدار
مقدار تعداد بایت هاییست که از پشته بازیابی میگردد
این دستور اعمال زیر را انجام میدهد
1.آدرس برگشت به برنامه فراخوان را از بالای پشته بازیابی میکند
2.به ادرس زیر برنامه فراخوان پرش میکند
دستور :CJNEاین دستور برای عملیات حلقه به کار می رود و فرم کلی آن به صورت زیر است:CJNE اپراند 1 , آدرس نسبی. اپراند 2این دستور اپراند 1 را با اپراند 2 مقایسه می کند اگر مساوی نباشد به آدرس نسبی مقصد پرش می کند در غیر این صورت دستور بعدی اجرا می شود.
حافظه مجموعه ای از بایت ها است.و بایت از 8 بیت ساخته شده است میکرو کنترلر توانائی به کارگیری دستورات بیتی رابرای تغییر بیتها یی که بیت آدرس پذیر هستند را دارد.این دستورات شامل دستورات انتقال بیت ودستورات منطقی و ست کردن بیت و پاک کردن بیت و ... هستند.برای اینکه بیت مشخصی را ست کنیم (مقدار آن را هر چه باشد به یک تغییر دهیم) از دستور SETB استفاده می کنیم.
SETB bitبرای پاک کردن یک بیت( صفر را در آن قرار دهیم ) از دستور
CLR bitاستفاده می کنیم .برای مکمل کردن یک بیت مشخص (اگر مقدار آن یک باشد به صفر تبدیل می شود و برعکس) از دستور
CPL bitاستفاده می کنیم .دستور انتقال داده بیتی همان دستور mov است . دستور mov را قبلا برای انتقال یک بایت از حافظه نیز به کار بردیم حال چگونه تشخیص دهیم که یک دستور mov ، یک بایت از حافظه را انتقال می دهد یا یک بیت ؟جواب این است: در صورتی که عملوند اول دستور یک بایت باشد یا یک ثبات، دستور mov بایتی است و هنگامی که عملوند دستور یک بیت باشد دستور، بیتی است
انشعاب غیر شرطی :در این گونه انشعاب ها برنامه بدون چک کردن شرطی ، به قسمت دیگری از برنامه می پرد. این گونه پرشها با استفاده از مشتقات JMP و CALL استفاده می شود.ه نوع دستور JMP ( jump) وجود دارد . sjmp (short jump) برای پرش کوتاه (پرش نسبی با طول 127 بایت به جلو یا عقب ) و ljmp (long Jump) برای پرش طولانی و Ajmp برای پرش با آدرس دهی مطلق . پرش طولانی می تواند به هر کجای برنامه باشد و محدودیت فاصله ندارد (در یک صفحه 64 کیلو بایتی)اما برای پرش مطلق باید هم آدرس مبدا و هم آدرس مقصد در یک صفحه دو کیلو بایتی باشند.بسته به اختلاف آدرس مبدا و مقصد و همچنین صفحه دو کیلو بایتی که آدرس وبدا در آن قرار دارد از jmp مناسب استفاده می کنیم .فرضا ممکن است که اختلاف آدرس مبدا و قصد کمتر از یک کیلو بایت باشد اما آدرس مبدا در یک صفحه دو کیلو بایتی قرار داشته باشد و آدرس مقصد در یک صفحه دو کیلو بایتی دیگر قرار داشته باشد در این حالت اگر اختلاف دو آدرس کمتر از 127 باشد از sjmp و در غیر اینصورت از ljmp استفاده می کنیم .صفحات دو کیلو بایتی مورد بحث از آدرس های زیر شروع می شوند (0000و800hو1000hو1800hوf800h)نوع دیگر پرشهای غیر شرطی call است دستور Call برای فراخوانی زیر برنامه ها به کار می رود.دستور بعدی DJNZ است (decrease jump if not zero) ( یک واحد کم کن و در صورتی که صفر نبود بپر.)می توان از این دستوربرای اجرای حلقه به تعداد دفعات تکرار مشخص استفاده کرد (مشابه حلقه ی for در زبانهای برنامه نویس سطح بالا):
شکل دستور
....


مبلغ قابل پرداخت 6,000 تومان

توجه: پس از خرید فایل، لینک دانلود بصورت خودکار در اختیار شما قرار می گیرد و همچنین لینک دانلود به ایمیل شما ارسال می شود. درصورت وجود مشکل می توانید از بخش تماس با ما ی همین فروشگاه اطلاع رسانی نمایید.

Captcha
پشتیبانی خرید

برای مشاهده ضمانت خرید روی آن کلیک نمایید

  انتشار : ۲۹ فروردین ۱۳۹۸               تعداد بازدید : 161

تمام حقوق مادی و معنوی این وب سایت متعلق به "" می باشد

فید خبر خوان    نقشه سایت    تماس با ما