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

موضوع: چرا دستورات avr ( اسمبلي ) معادل دارن ؟

  1. #1
    عضو جدید
    تاریخ عضویت
    Apr 2010
    نوشته ها
    6
    تشکر
    0
    تشکر شده 7 بار در 3 پست

    پیش فرض چرا دستورات avr ( اسمبلي ) معادل دارن ؟

    دستور SER RX معادل است با يكي از دستورات زير
    SBR Rx,255
    LDI RX, 255

    هرسه يك پالس مصرف ميكنه
    نتيجه فلگ هم همان است
    آيا يك دستور كمتر زندگي بهتر ؟
    ویرایش توسط aliila : 29-04-2010 در ساعت 11:29

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

  3. #2
    مدیر انجمن farzadsw آواتار ها
    تاریخ عضویت
    Feb 2009
    نام
    تهران
    نوشته ها
    485
    تشکر
    105
    تشکر شده 745 بار در 309 پست

    پیش فرض

    نقل قول نوشته اصلی توسط aliila نمایش پست ها
    دستور SER RX معادل است با يكي از دستورات زير
    SBR Rx,255
    LDI RX, 255

    هرسه يك پالس مصرف ميكنه
    نتيجه فلگ هم همان است
    آيا يك دستور كمتر زندگي بهتر ؟
    با هم فرق دارن . اگه instruction set رو نگاه کنید میبینید که مثلا فقط sbr فلگ ها رو تغییر میده. یا غیر از اون ldi فرقش با sbr اینه که sbr مقدار رجیستر رو با عدد مورد نظر or میکنه و بعد میریزه تو رجیستر ولی ldi هر عددی باشه رو مستقیم میریزه تو رجیستر.

    ser شبیه ldi rx,۲۵۵ عمل می کنه از این لحاظ حق با شماست . دلیلش راحت تر شدن نوشتن کد اسمبلی هست . اگه دقت کنید opcode اونا هم یکی هست و در اصل یه دستور العمل هستن.

    کلا تو معماری RISC تا جایی که میشه تعداد دستور العمل ها رو کم میکنن تا هم سرعت رو بتونن افزاریش بدن هم هزینه ساخت و طراحی کمتر بشه .

  4. تشکرها از این نوشته :


  5. #3
    کاربر علاقه مند
    تاریخ عضویت
    Jan 2010
    نوشته ها
    20
    تشکر
    10
    تشکر شده 8 بار در 6 پست

    پیش فرض

    وجود این دستورات: SEC,SEN,SEZ,SEI,SES,SEV,SET,SEH, و در مقابل اونها CLC,CLN,CLZ,CLI,CLS,CLV,CLT,CLH هم زیاد جالب به نظر نمیرسه، توی pic فقط دوتا دستور BSF و BCF کار همه این دستورات رو میتونند انجام بدن، فکر کنم همون SBI و CBI در AVR هم دقیقا کار همینارو میتونه بکنه، یعنی به جای اینکه تعداد دستورالعمل ها رو کم کنند زیاد کردند!!
    علاوه بر اون به نظر من یک مشکل مهم دستورالعملهای AVR این هست که دستورات LDS و STS که برای ارتباط با RAM داخلی هستند دارای آپکود 32 بیتی هستند، یعنی هر بار که برنامه نویس بخواد مستقیما داده از RAM بخوانه یا توی اون بنویسه 4 بایت از حافظه رو از دست میده، در حالی که مثلا در PIC این کار 16 بیت آپکود داره، یعنی 2 بایت، که دقیقا نصف هست، حالا حساب کنید توی برنامه های بزرگ که باید n مرتبه از Ram مستقیم بخوانی و بنویسی سرعت پرشدن حافظه flash چقدر فرق میکنه.

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

  1. درباره دستورات i2c
    توسط Deadman در انجمن AVR
    پاسخ: 0
    آخرين نوشته: 07-11-2013, 15:34
  2. دستور ارسال عدد در spi با میکرو avr
    توسط Niloufar.Male در انجمن AVR
    پاسخ: 0
    آخرين نوشته: 26-10-2013, 19:52
  3. دستورات arm
    توسط imported_pmf در انجمن AT91 series (ATMEL)
    پاسخ: 0
    آخرين نوشته: 25-08-2012, 12:21
  4. دستورات سریال
    توسط leylijoon در انجمن برنامه نویسی کامپیوتر/کنترل با کامپیوتر
    پاسخ: 1
    آخرين نوشته: 18-08-2012, 09:20
  5. مشکل در دستور if
    توسط parham144 در انجمن AVR
    پاسخ: 8
    آخرين نوشته: 22-05-2012, 00:57

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

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