پاورپوینت پروژه اسمبلی ساعت بدون آلارم.

پاورپوینت پروژه اسمبلی ساعت بدون آلارم. (pptx) 31 اسلاید


دسته بندی : پاورپوینت

نوع فایل : PowerPoint (.pptx) ( قابل ویرایش و آماده پرینت )

تعداد اسلاید: 31 اسلاید

قسمتی از متن PowerPoint (.pptx) :

پروژه اسمبلی ساعت بدون آلارم THE DIGITAL WATCH PROGRAM مقدمه منبع اصلی این پروژه یک سایت اینترنتی میباشد توضیحات از کتاب برنامه نویسی به زبان اسمبلی از مهندس قمی و چندین سایت اینترنتی میباشد . معرفی مجموعه دستورات این برنامه 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و800 h و1000 h و1800 h و f800h) نوع دیگر پرشهای غیر شرطی call است دستور Call برای فراخوانی زیر برنامه ها به کار می رود. دستور بعدی DJNZ است (decrease jump if not zero) ( یک واحد کم کن و در صورتی که صفر نبود بپر.)می توان از این دستوربرای اجرای حلقه به تعداد دفعات تکرار مشخص استفاده کرد (مشابه حلقه ی for در زبانهای برنامه نویس سطح بالا ):

نظرات کاربران

نظرتان را ارسال کنید

captcha

فایل های دیگر این دسته