اطلاعیه

Collapse
No announcement yet.

طول سیکل هر دستور

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    طول سیکل هر دستور

    با سلام کسی میدونه وقتی با زبان c برنامه می نویسی از کجا میتونی بفهمی هر دستور چند سیکل طول میکشه یا چقدر زمان میگیره؟ممنون

    #2
    پاسخ : طول سیکل هر دستور

    زمان اجرا برای هر دستور فقط برای دستورات اسمبلی قابل محاسبه هست.یعنی باید برنامه C رو تبدیل به اسمبلی کنی بعد با توجه به فرکانس میکرو زمانش رو حساب کنی.
    یه راه دیگه که این دردسر ها رو نداشته باشه استفاده از Avr Studio .اگه فایل .cof برنامتون که با C نوشته شده رو با avr studio باز کنید امکان دیباگ رو پیدا میکنید.
    ازسمت چپ برنامه process رو باز کنید و برنامه رو خط به خط اجرا کنید. این جوری همه ی اطلاعات پردازنده دستت میاد.
    اگه درست متوجه کار نشدی بگو تا کامل تر توضیح بدم.
    [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

    دیدگاه


      #3
      پاسخ : طول سیکل هر دستور

      اگر لطف کنید کاملتر توضیح بدید و نرم افزارم اگر دارید بذارید ممنون میشم

      دیدگاه


        #4
        پاسخ : طول سیکل هر دستور

        می توان با آنالیز روش تبدیل سی به اسمبلی طول سیکل برنامه سی را محاسبه کرد یکم مفصله ولی در درس اسمبلی رشته کامپیوتر برسی میشه
        اگه حدودی بخوای چون سی خودش سطح پایینه خیلی نزدیک به اسمبلی است می شه گفت
        در اسمبلی
        دستورات خواندن و نوشتن در ثبات به 1 سیکل نیاز دارند
        دستورات مقایسه ثبات به 1 سیکل نیاز دارند
        دستورات انشعاب شرطی یا همان پرش 2 سیکل نیاز دارند
        فرا خوانی تابع یا اتفاق وقفه به 7 سیکل نیاز دارند

        حال به صورت حدودی میشه کفت دستور زیر در سی
        کد:
        for (i=0;i<5;i++)
        k=k+7;
        برای مقایسه iو5 در بدترین حالت (ضعیف ترین الگوریتم) اول متغیر به ثبات nام بار میشه وبعد با 5 مقایسه میشه و بعد متغیر یک واحد زیاد میشه و بعد پرش صورت میگره که میشه 5 پالس

        میشه گفت توابع و وقفه ها به 7 پالس ( تو کد ویژن یه تیک است که موقع فراخوانی توابع تمام ثبات ها پوش نشن که اگه پوش بشن 32 پالس هم بیا روش)
        و حلقه ها و if به 5 پالس نیاز داره


        دوست عزیز من قبلا هم گفتم زبان سی و بیسک زبان مناسبی برای میکرو با کلاک حد اکثر 16 مگ نیست (کلا ازش سی و بیسک به شی گرا بودنشون و کامپوننت های ویژوالی شونه که اون هم میشه ویژوال بیسیک و ویژوال سی ) تو کار های دقیق و حساس و سریع ( غیر ویزوالی ) اسمبلی بهتره حتی یادگیریش سادتره زبون خود میکرو است
        تنها موردي كه همه آدما يقين دارن خدا در حقش زیاد لطف کرده
        داشتن عقله زيادتر از دیگر آدم ها است

        دیدگاه


          #5
          پاسخ : طول سیکل هر دستور

          نوشته اصلی توسط زوار
          اگر لطف کنید کاملتر توضیح بدید و نرم افزارم اگر دارید بذارید ممنون میشم
          avr studio مثل کدویژن راحت پیدا میشه.یه سرچی بزن پیدا میکنی.الان درست یادم نیست وگرنه یهآدرس بهتر میدادم.
          کار باهش هم اصلا سخت نیست.فقط کافیه فایل cof که کامپایلر ساخته رو با avr studio باز کنی.سمت چپ تو قسمت work space تمام ریجستر های میکرو رو میبینی.حالا با کلید F10 ,F11 برنامه رو خط به خط اجرا کن.و تغیرات ریجستر CPU رو تو قسمت processor ببین. فقط یادت نره کریستال میکرو و نوع میکرو رو درست کنی(alt +o رو بزن تا بتونی این کار رو بکنی)
          اگه جاییش مشکلی بود بگو.
          [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

          دیدگاه

          لطفا صبر کنید...
          X