لطفا به نکات زیر در هنگام خرید دانلود پاورپوینت پروژه اسمبلی ساعت بدون آلارم THE DIGITAL WATCH PROGRAM توجه فرمایید.

1-در این مطلب، متن اسلاید های اولیه دانلود پاورپوینت پروژه اسمبلی ساعت بدون آلارم THE DIGITAL WATCH PROGRAM قرار داده شده است 2-به علت اینکه امکان درج تصاویر استفاده شده در پاورپوینت وجود ندارد،در صورتی که مایل به دریافت  تصاویری از ان قبل از خرید هستید، می توانید با پشتیبانی تماس حاصل فرمایید 3-پس از پرداخت هزینه ، حداکثر طی 12 ساعت پاورپوینت خرید شده ، به ادرس ایمیل شما ارسال خواهد شد 4-در صورت  مشاهده  بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل اسلاید ها میباشد ودر فایل اصلی این پاورپوینت،به هیچ وجه بهم ریختگی وجود ندارد 5-در صورتی که اسلاید ها داری جدول و یا عکس باشند در متون زیر قرار نخواهند گرفت

اسلاید ۱ :

مقدمه

nمنبع اصلی این پروژه یک سایت اینترنتی میباشد

nتوضیحات از کتاب برنامه نویسی به زبان اسمبلی از مهندس قمی و چندین سایت اینترنتی میباشد .

اسلاید ۲ :

معرفی مجموعه دستورات این برنامه

ORG

اين شبه دستور افست ادرس محل ذخيره دستور يا داده بعدي را تعيين ميكند . شكل كلي ان بصورت زير است

ORG ادرس

مثلا دستور ORG1000H

سبب میشود که انتقال برنامه به خانه ی هزارم حافظه برود و از آنجا شروع به ادامه ی اجرای برنامه کند استفاده از اين دستور در هر مكاني از برنامه اختياري است . و هر گاه كاربر لازم ديد كه ادامه برنامه در خانه ديگري از حافظه اجرا شود از اين دستور استفاده ميكند . اما استفاده از اين دستور در برنامه هاي  کام بلافاصله قبل از شروع كد نويسي برنامه اجباري است

 

اسلاید ۳ :

nآدرس دهی فوری یا بلافاصله:

در صورتی که بخواهیم یک عدد ثابت نه یک آدرس را در مکانی از حافظه قرار دهیم از آدرس دهی فوری استفاده می کنیم.مشخصه آدرس دهی فوری استفاده از پیشوند # قبل از عدد است.

در صورتی که در یک دستور از عددی استفاده کنیم اگر عدد بدون پیشوند باشد نوع آدرس دهی مستقیم است و در صورتی که عدد پیشوند # داشته باشد آدرس دهی فوری خواهد بود.

اسلاید ۴ :

MOV

اين دستور براي كپي كردن يك خانه از حافظه يا داده ها در بايت ها ي حافظه استفاده مي شود.توجه كنيدكه اين دستوريك دستوربايتي است.

اسلاید ۵ :

nفراخوانی زیر برنامه

nبرای فراخوانی زیر برنامه از دستور

nCALL

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

nCALLآدرس       

nآدرس را میتوان مستقیم یا غیر مستقیم در نظر گرفت

nهنگامی که این دستور اجرا میگردد دو عمل انجام میشود

n1.آدرس برگشت به زیر برنامه فراخوان در پشته ذخیره میشود

n2.کنترل اجرای برنامه به آدرس شروع زیر برنامه میرود

اسلاید ۶ :

برگشت از زیر برنامه

nبرای برگشت به زیر برنامه فراخوان از دستور

nRET/RETF

nاستفاده میگردد شکل کلی دستور به صورت زیر است

nRET/RETF  مقدار       

n مقدار تعداد بایت هاییست که از پشته بازیابی میگردد

nاین دستور اعمال زیر را انجام میدهد

n1.آدرس برگشت به برنامه فراخوان را از بالای پشته بازیابی میکند

n2.به ادرس زیر برنامه فراخوان پرش میکند

اسلاید ۷ :

nدستور :CJNE

این دستور برای عملیات حلقه به کار می رود و فرم کلی آن به صورت زیر است:

CJNE اپراند ۱ , آدرس نسبی. اپراند ۲

این دستور اپراند ۱ را با اپراند ۲ مقایسه می کند اگر مساوی نباشد به آدرس نسبی مقصد پرش می کند در غیر این صورت دستور بعدی اجرا می شود.

اسلاید ۸ :

nحافظه مجموعه ای از بایت ها است.و بایت از ۸ بیت ساخته شده است میکرو کنترلر توانائی به کارگیری دستورات بیتی رابرای تغییر بیتها یی که بیت آدرس پذیر هستند را دارد.
این دستورات شامل دستورات انتقال بیت ودستورات منطقی و ست کردن بیت و پاک کردن بیت و … هستند.
برای اینکه بیت مشخصی را ست کنیم (مقدار آن را هر چه باشد به یک تغییر دهیم) از دستور SETB استفاده می کنیم.

nSETB bit

برای پاک کردن یک بیت( صفر را در آن قرار دهیم ) از دستور

nCLR bit

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

nCPL bit

استفاده می کنیم .دستور انتقال داده بیتی همان دستور mov است . دستور mov را قبلا برای انتقال یک بایت از حافظه نیز به کار بردیم حال چگونه تشخیص دهیم که یک دستور mov ، یک بایت از حافظه را انتقال می دهد یا یک بیت ؟
جواب این است: در صورتی که عملوند اول دستور یک بایت باشد یا یک ثبات، دستور mov بایتی است و هنگامی که عملوند دستور یک بیت باشد دستور، بیتی است

اسلاید ۹ :

n
انشعاب غیر شرطی :

در این گونه انشعاب ها برنامه بدون چک کردن شرطی ، به قسمت دیگری از برنامه می پرد. این گونه پرشها با استفاده از مشتقات JMP و CALL استفاده می شود.
ه نوع دستور JMP ( jump) وجود دارد . sjmp (short jump) برای پرش کوتاه (پرش نسبی با طول ۱۲۷ بایت به جلو یا عقب ) و ljmp (long Jump) برای پرش طولانی و Ajmp برای پرش با آدرس دهی مطلق . پرش طولانی می تواند به هر کجای برنامه باشد و محدودیت فاصله ندارد (در یک صفحه ۶۴ کیلو بایتی)اما برای پرش مطلق باید هم آدرس مبدا و هم آدرس مقصد در یک صفحه دو کیلو بایتی باشند.
بسته به اختلاف آدرس مبدا و مقصد و همچنین صفحه دو کیلو بایتی که آدرس وبدا در آن قرار دارد از jmp مناسب استفاده می کنیم .فرضا ممکن است که اختلاف آدرس مبدا و قصد کمتر از یک کیلو بایت باشد اما آدرس مبدا در یک صفحه دو کیلو بایتی قرار داشته باشد و آدرس مقصد در یک صفحه دو کیلو بایتی دیگر قرار داشته باشد در این حالت اگر اختلاف دو آدرس کمتر از ۱۲۷ باشد از sjmp و در غیر اینصورت از ljmp استفاده می کنیم .
صفحات دو کیلو بایتی مورد بحث از آدرس های زیر شروع می شوند (۰۰۰۰و۸۰۰hو۱۰۰۰hو۱۸۰۰hوf800h)

نوع دیگر پرشهای غیر شرطی call است دستور Call برای فراخوانی زیر برنامه ها به کار می رود.

دستور بعدی DJNZ است (decrease jump if not zero) ( یک واحد کم کن و در صورتی که صفر نبود بپر.)می توان از این دستوربرای اجرای حلقه به تعداد دفعات تکرار مشخص استفاده کرد (مشابه حلقه ی for در زبانهای برنامه نویس سطح بالا):

اسلاید ۱۰ :

nشکل دستور

nDJNZ عملوند ۱,address

عملوند۱ می تواند یکی از ثبات های بانک ثبات یا آدرس یک بایت از حافظه باشد.

دستور پرش شرطی پ کاربرد دیگر دستور CJNE(compare jump if not equal)مقایسه کن و بپر در صورتی که دو عملوند برابر نباشند.

nCJNE عملوند ۱,عملوند ۲, address