اطلاعیه

Collapse
No announcement yet.

مدت زمان اجرای دستورات در بیسکام ؟

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

    مدت زمان اجرای دستورات در بیسکام ؟

    سلام
    یک سوال ساده اما خیلی مهم دارم :
    می خوام بدونم مدت زمان یا همون تعداد سیکلی که طول میکشه یک دستور توی بیسکام اجرا بشه چقدره ؟
    مثلا چقدر طول میکشه که دستور IF اجرا بشه و اگه شرط IF دوتا بشه چقدر میشه ؟ :job:

    #2
    پاسخ : مدت زمان اجرای دستورات در بیسکام ؟

    الو .... الو ....
    کسی نیست جواب بده .... :angry:

    دیدگاه


      #3
      پاسخ : مدت زمان اجرای دستورات در بیسکام ؟

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

      دیدگاه


        #4
        پاسخ : مدت زمان اجرای دستورات در بیسکام ؟

        بالاخره توی این بیسکام برای یک دستور مثل همون IF یک نوع کد تولید می کنه . حالا با توجه به نوع برنامه کد ایجاد شده ممکنه فرق بکنه ، درست . یعنی هیچ جوری نمیشه فهمید یک دستور توی بیسکام چقدر طول میکشه ؟

        دیدگاه


          #5
          پاسخ : مدت زمان اجرای دستورات در بیسکام ؟

          متاسفانه دقیق یادم نیست که Bascom فایل اسمبلی رو هم در اختیار کاربر قرار میداد یا خیر اما فکر میکنم بعد از کامپایل این فایل هم یکی از خروجی ها هست که برنامه اسمبلی تولید شده از برنامه بیسیک شما میآ‌باشد ( آ‌file.ASM ). شما میتونید توی اون فایل اسمبلی قسمت مورد نظر را پیدا کنید و مشاهده کنید که چطور برنامه شما به زبان اسمبلی ترجمه شده و محاسبات مورد نظر را انجام بدید.
          روش دیگری هم هست و اینه که قبل و بعد از اون قسمتی که میخواید مدت زمان اجراش رو اندازه بگیرید یکی از پین های خروجی را صفر و یک کنید و بعد برنامه را اجرا کنید و با اسیلوسکوپ مدت زمان بین صفر و یک که در واقع زمان اجرای دستورات شماست را اندازه بگیرید.
          راه اول را اگر بتونید درست انجام بدید دقیق تر هست.
          از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
          هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
          اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
          اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
          شاد و موفق باشید

          دیدگاه


            #6
            پاسخ : مدت زمان اجرای دستورات در بیسکام ؟

            عموما مستقل از زبان و سیستم میکرو اگه if را به صورت زیر فرض کنیم معادل اسمبلیش هم پایین اومده


            کد:
            if (x == y)
            {
              z = 1;
            }
            else
            {
              z = 0;
            }
            
              * Move x into Data Register D7
              MOVE.L _x, D7
              * Now compare x with y
              CMP.L _y, D7
              * If not equal branch to the else leg specified by label L1
              BNE.S L1
              * Moving 1 into z
              MOVE.L #1, _z
              * Branch beyond the if-then-else statement
              BRA L2
              * Else portion of the if-else statement
              * Set z to zero
             L1 CLR.L _z
              * End of if-else statement. if portion of the statement executes an 
              * unconditional branch to reach L2. The else leg falls through into L2
             L2 . . .
            خوب حدودا ( حداقل )میشه گفت if یک انتساب است یک مقایسه است و یک پرش برای then و یک پرش برای خروج از if پس 10 پالس ساعت میگیره (یکی برای انتساب یکی برای مقایسه 4 تا برلی پرش ) پس مدت زمان بستگی داره به کلاک سیستم با 16 مگ هر پالس 62.5 نانو ثانیه زمان میبره
            تنها موردي كه همه آدما يقين دارن خدا در حقش زیاد لطف کرده
            داشتن عقله زيادتر از دیگر آدم ها است

            دیدگاه

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