NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2022 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 3 از 3

موضوع: چهار عمل اصلی در بسکام ای وی ار

  1. #1
    تازه وارد
    تاریخ عضویت
    Sep 2018
    نوشته ها
    2
    تشکر
    1
    تشکر شده 0 بار در 0 پست

    پیش فرض چهار عمل اصلی در بسکام ای وی ار

    سلام عزیزان گرانقدر
    من یک کد داخل بسکام ای وی آر نوشنم و با سیمولاتور خود بسکام راه اندازی کردم و نتایج زیر به دست امده
    کد:
    Dim B As Byte
    Dim Bb As Byte
    Dim Bbb As Byte
    B = 250
    Bb = 250
    B = B + Bb

    B = 1
    Bb = 100
    B = B - Bb
    250 +250 نتیجه شده 144
    و 1-100 نتیجه شده 157
    البته میدونم چه اتفاقی داره میافته ولی انتظار داشتم بسکام با در نظر گرفتن overflow در جمع عدد 255 و در منها عدد صفر بهم بده
    سوال:
    ایا این ماهیت بسکامه؟
    ایا این یک باگ در کامپایلره؟
    ایا باید برای بدست اوردن حاصل مد نظرم کد خاصی باید در نظر بگیرم؟
    ورژن بسکام من
    Compiler version :2.0.7.8
    Compiler build :2.0.7.8.004
    IDE version :2.0.7.8.003
    یا تشکر ار همراهی شما
    ویرایش توسط کامی : 11-09-2018 در ساعت 15:39

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر علاقه مند omidctrl آواتار ها
    تاریخ عضویت
    Apr 2014
    نوشته ها
    83
    تشکر
    14
    تشکر شده 38 بار در 34 پست

    پیش فرض

    سلام. با توجه به اینکه متغیر Bbb از نوع بایت هست، وقتی 250 با 250 جمع میشه، پرچم نقلی (اگه اشتباه نکنم) یک میشه. یعنی جمع تا 256 انجام میشه و این پرچم یک میشه و دوباره از صفر جمع انجام میشه. در نتیجه شما یه پرچم یک شده (256) + عدد 244 که نشون داده دارین که میشه 256+244=500. در مورد تفریق هم چون عدد اول کوچکتره، پرچم منفی (باز اگه اشتباه نکنم) یک میشه و این اتفاق می افته: (100-1)+256 که حاصلش میشه همون 157.
    من خودم تا حالا با پرچم ها تو بسکام کار نکردم. اما بخش (5-5) کتاب آموزش بسکام علی کاهه و همچنین بخش رجیسترهای دیتا شیت AVR رو بخونین، شاید بشه به این پرچم ها دسترسی پیدا کرد. اما راه ساده ترش تعریف بهتر متغیر Bbb هستش. مثلا از نوع integer تعریف کنین که هم بازش بزرگه و هم اعداد منفی رو شامل میشه.
    اگه پاسخ کامل نیست یا احتمالا جاییش رو اشتباه کردم، ببخشید. چون یکم اطلاعاتم تو این زمینه خاک خوردس!

  4. کاربران : 2 تشکر کرده اند از شما omidctrl برای ارسال این پست سودمند:


  5. #3
    تازه وارد
    تاریخ عضویت
    Sep 2018
    نوشته ها
    2
    تشکر
    1
    تشکر شده 0 بار در 0 پست

    پیش فرض

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

موضوعات مشابه

  1. [سوال] نمایش عکس بروی برد LPC1768 LANTIGER از روی MMC Card
    توسط sakhdari در انجمن LPC series (NXP)
    پاسخ: 9
    آخرين نوشته: 03-09-2015, 11:14
  2. جستجوی مقاله آموزشی avr ( گفتگوی دو دوست )
    توسط mapmap در انجمن پرسش و پاسخ (نرم افزارهای تخصصی)
    پاسخ: 5
    آخرين نوشته: 28-07-2013, 04:57
  3. پاسخ: 1
    آخرين نوشته: 11-05-2013, 00:12
  4. حل مشکل نیامدن منوی بوت برای نصب ویندوز روی برد s3c6410
    توسط shahrivar88 در انجمن میکرو کنترلر های 32 بیتی(arm)
    پاسخ: 1
    آخرين نوشته: 03-11-2012, 23:56

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •