دوشنبه , ۳ تیر ۱۳۹۸
آخرین مطالب
LINK TABLES
خانه | میکروکنترلر | دوره آموزشی AVR | برنامه نویسی اسمبلی برای AVR(جلسه ۴)

برنامه نویسی اسمبلی برای AVR(جلسه ۴)

معرفی چند دستور مهم زبان اسمبلی

۱-دستور INC

فرمت کلی این دستور اسمبلی به این شکل است :  INC  Rd

این دستور محتوای Rd را یک واحد افزایش می دهد.

مثال:

۲-دستور DEC

فرمت کلی این دستور اسمبلی به این شکل است:  DEC  Rd

بعد از اجرای این دستور محتوای Rd یک واحد کاهش می یابد.

مثال:

لازم به ذکر است که دو دستور بالا اثری بر روی پرچم های وضعیت ندارند.

۳-دستور SUB

فرمت کلی این دستور اسمبلی به این شکل است :  SUB  Rd,Rr

این دستور مقدار Rr را از Rd کم کرده و نتیجه را در Rd می گذارد.همچنین این دستور بر روی پرچم های وضعیت اثر می گذارد.

مثال:

۴- دستور COM

فرمت کلی این دستور اسمبلی به این شکل است:  COM  Rd

این دستور مکمل(معکوس) Rd را محاسبه کرده و نتیجه را در Rd قرار می دهد.

مثال:

حال که با بعضی از دستورات زبان اسمبلی آشنا شدید به توضیح در مورد انواع داده در AVR و مثال هایی با دستورات گفته شده می پردازیم.

همان طور که می دانید AVR فقط داده های هشت بیتی را پشتیبانی می کند و برای پردازش داده های بیش از هشت بیت باید آنها را به اجزای ۸ بیتی خرد کنیم.داده هایی که توسط AVR استفاده می شوند می نوانند مثبت یا منفی ویا زوج و فرد باشند باشند.

اگر پرارزش ترین بیت (D7) یک باشد عدد منفی، و اگر صفر باشد عدد مثبت است.همچنین اگر کم ارزشترین بیت(D0) صفر باشد عدد زوج و اگر یک باشد عدد فرد است.

مثال: عدد مثبت و زوج ۰۱۱۱۱۰۱۰-عدد مثبت و فرد ۱۱۰۰۰۱۱۰- عدد منفی و زوج ۱۱۰۰۱۱۱۰- منفی و فرد۱۱۰۰۱۱۱۱

اعداد را به چهار فرمت دودویی، ده دهی،مبنای شانزده و اسکی می توان در برنامه نویسی اسمبلی به کار برد.به مثال زیر توجه کنید:

در دستور دوم علامت دلار روش دیگری برای نمایش اعداد بر مبنای ۱۶ می باشد.

در دستور سوم فرمت دهدهی  و در دستور چهارم فرمت باینری  ۰x30نوشته شده.

در دستور آخر کد اسکی عدد صفر که همان عدد ۰x30 است در ثبات R16 قرار می گیرد چون داخل علامت نقل قول قرار گرفته.پس در هر ۵ دستور یک مقدار مشابه وارد ثبات R16 می شود.

درباره ی احسان عبداللهی

احسان عبداللهی هستم | کارشناسی الکترونیک خوندم و کارشناسی ارشد مخابرات |در سال 94 وب سایت میکرولرن را راه اندازی کردم | سعی کردم هر چیزی را به صورت کاربردی دنبال کنم، برای همین از کارشناسی کار با میکروکنترلرهای AVR و ARM، برنامه نویسی C و طراحی PCB را به صورت تخصصی کار کردم و از کارشناسی ارشد برنامه نویسی پایتون ، Computer vision و deep learning را به صورت تخصصی و کاربردی شروع کردم | الان هم سعی میکنم همیشه خودم را به روز نگه دارم و لذت کار کردن با دنیای برنامه نویسی و امبدد سیستم ها را به دیگران انتقال بدم

۲۲ دیدگاه

  1. با سلام
    میخواستم بپرسم که دریافتی از سنسور دما توسط adc روباید حتما به کد اسکی تبدیل کرد تا بروی lcd نمایش داده بشه؟
    یه سوال دیگ این که نمیشه چندتا سنسور با هم خوانده بشن از طریق adc یا باید حتما یکی باشه و اگر بخوایم یکی در میان هم فعالشون کنیم باید چکار کرد؟
    ممنون

  2. سلام
    چندتاپروژه برای زبان اسمبلی میکرو avrمیخواستم برای یادگیری بیشتر. مثل تنظیم دمای اتاق و کنترل سرعت موتور و..هر چه بیشتر بهتر لطفا اگر لینک دانلود دارین بدبد و گرنه یه کتاب معرف ی کنید
    با تشکر

  3. سلام
    برای یادگیری زبان c من فقط کتاب دکتر مزیدی رو دارم.برای مثال چه کتابی خوبه؟
    منظور از ضمیمه کردن اینه که محتویات فایل رو در برنامه اصلی کپی کنم؟
    خب این جوری که برنامه خیلی طولانیی میشه …

    • کتاب دکتر مزیدی برای اسمبلی و معماری بیشتر مناسب هست. برای زبان C من کتاب پرتویی فر یا جابر الوندی رو پیشنهاد می کنم. چون مثال های ملموس و کاربردی با زبان C دارند.
      برای ضمیمه کردن اصلا نیاز به کپی کردن نیست. فقط ابتدای برنامه باید بنویسید:
      “include “m32def.inc.

  4. سلام برای اموزش زبان avr c چه کتابی پیشنهاد میکنید؟
    در ضمن برای اجرا کردن برنامه در avr studio فایل m32def.incرو کجا باید قرار بدم؟

    • درود
      زبان C می خواید یاد بگیرید یا کتابی میخواید که مثال های AVR را به زبان C گفته باشه؟
      فایلی که گفتید جزء فایل های خود avr studio هست و بعد از ساختن پروژه فقط کافیه به پروژه ضمیمه بشه. اصلا نیازی نیست شما چنین فایلی بنویسید .

  5. کتاب های ره افروز-مهندس علی کاهه و همچنین کتاب پرتوی فر .این ها در کورد چی بیشتر توضیح دادند؟اگر کتاب دکتر مزیدی را مطالعه کنم دیگر نیازی به این کتاب ها ندارم؟
    هم چنین کتاب ۱۱ پروژه در مورد چی هست؟
    همه این ها را باتوجه به امتحانم گفتم

    • شما اگه برای بحث امتحان و معماری و اسمبلی avr میخواید مطالعه کنید فقط کتاب مزیدی مناسب هست.
      کتاب هایی که گفتید محتوای C یا بسکام دارند و زیاد روی ساختار داخلی و اسمبلی مانور ندادند. البته برای انجام پروژه های عملی بسیار کتاب های خوبی هستند ولی برای امتحان شما خیلی نمی تونند مفید باشند.

  6. کتاب میکرو کنترلرهای AVR برنامه نویسی اسمبلی و C به همراه DVD آموزشی

    مولف: محمدعلی مزیدی – سپهر نعیمی – سرمد نعیمی

    مترجم: آناهیتا نعیمی
    ////کتاب دقیقا با همین عنوان هست؟درضمن برنامه c رو چطور اموزش دادن؟////

    • بله دقیقا همین کتاب هست. من برای زبان C این کتاب رو پیشنهاد نمی کنم. به چند دلیل:
      ۱-این کتاب اصلا زبان سی رو آموزش نمیده و اگه با این زبان آشنا نیستید باید منابع این زبان رو تهیه کنید.
      ۲-مثالهایی که برای زبان c داره خیلی کم هستن و زیاد دید خوبی نمیدن.
      ۳-برای کسانی که میخوان با کدویژن کار کنند هیچ مثالی نداره. البته avr studio رو تا حدی اشاره کرده.

  7. سلام مجدد
    من درس میکروپروسسور ۱ رو ترم تابستان خودخوان برداشتم وقرار براین شده که از میکرو avrگرفته بشه.میخواستم بپرسم این کتاب کامل و کافی هست؟برنامه نویسی اسمبلی و ز و همچنین در مورد ساختار داخلی این میکرو ها توضیح کامل داده است؟
    درضمن رشته بنده مهندسی برق هست.
    باتشکر

    • کتاب دکتر مزیدی از لحاظ معرفی ساختار داخلی AVR و زبان اسمبلی برای این میکروکنترلر کاملترین کتاب موجود در بازار هست و خودم این کتاب را به طور کامل مطالعه کردم. اما برای امتحانی که شما گفتید بهتره از دانشگاه محل تحصیل خودتون سوال کنید که سوالات از چه کتابی مطرح میشه تا سرفصل ها اختلاف نداشته باشه.

  8. با سلام
    کتاب ترجمه شده میکروکنتلر avr دکتر مزیدی رو کجا میتونم دانلود کنم لطفا اگرلینکی هست برام ارسال کنید باتشکر

    • با سلام و عرض ادب
      کتاب ترجمه شده دکتر مزیدی داخل کشور حق چاپ و نشر داره و کسی نمی تونه لینک دانلود رایگان در اینترنت قرار بده. بهتره برای احترام به حقوق مترجم کتاب را خریداری کنید. با تشکر 🙂

  9. با سلام .میخواستم بپرسم که این برای نوشتن برنامه اسمبلی به همین روش هایی که توضیح دادید.کدام برنامه رو پیشنهاد میدید؟ ایا با استفاده از bascom avr هم میشه اید دستورات رو بکار برد؟

  10. ممنون بابت اموزش عالیتون

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *