اطلاعیه

Collapse
No announcement yet.

Program Counter منفی

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

    Program Counter منفی

    سلام خدمت مهندسین و بالا و پایین تر از مهندسین عزیز
    در حالت عادی برنامه که اجرا میشه Program counter با اجرای هر دستور اضافه میشه و در نتیجه برنامه از بالا ( مثلا آدرس 0 ) شروع به اجرا میکنه و میاد پایین ( آدرس ها بالا تر ) حالا من میخوام بعد از اینکه برنامه تا جایی اجرا شد برگرده. یعنی از پایین برنامه رو به بالا اجرا بشه یعنی Program Counter منفی بشه. همچین چیزی امکان داره که با اجرای هر کد به جای اینکه یکی بهش اضافه بشه یکی کم بشه؟ فرقی نمیکنه سخت افزاری باشه یا نرم افزاری فقط میخوام ببینم میشه همچین کاری کرد یا نه؟
    ممنون
    از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
    هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
    اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
    اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
    شاد و موفق باشید

    #2
    پاسخ : شمارنده برنامه منفی؟؟!!

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

    دیدگاه


      #3
      پاسخ : شمارنده برنامه منفی؟؟!!

      خود پرسی و خود پاسخ دهندندی
      به به چه هنرمندندی

      دیدگاه


        #4
        پاسخ : شمارنده برنامه منفی؟؟!!

        نوشته اصلی توسط LYRA
        خود پرسی و خود پاسخ دهندندی
        به به چه هنرمندندی
        سلام به جمع ما خوش اومدی دوست عزیز
        این اولین دفعه نیست از این موارد پیش میاد شاید برای شما هم پیش بیاد، به هر حال بد نیست جوابی رو که متوجه شدیم اینجا بزاریم که اگر کسی دیگه هم خواند متوجه بشه آخرش چی شده.
        اتفاقا ازش پرسیدم که آیا کنترلر یا پروسسور دیگه ای هست که این امکان رو در اختیار کاربر بزاره؟ گفت متاسفم نمیدونم.
        شما سراغ ندارید؟
        از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
        هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
        اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
        اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
        شاد و موفق باشید

        دیدگاه


          #5
          پاسخ : شمارنده برنامه منفی؟؟!!

          نه دوست عزیز منهم نردبانی رو سراغ ندارم که اگه برعکسش کنیم بشه از بالا بیای پایین.

          دیدگاه


            #6
            پاسخ : شمارنده برنامه منفی؟؟!!

            سلام
            فکر نکنم اصلا چنین چیزی بشه :eek:

            دیدگاه


              #7
              پاسخ : شمارنده برنامه منفی؟؟!!

              سلام به دوستان .
              ببینید برای جواب دادن به این سوال باید ساختار معماری CPU رو مورد ارزیابی قرار بدیم . در حقیقت واحدی که برای increment خط برنامه به کار میره ، یه شمارنده ی تک جهته هست (یعنی تنها بالا شمار) که عمل شمارش رو انجام میده . خطوطی هم که به این واحد پالس میدن در واقع همین انتظار رو دارن که در سیکل کاری ، یه افزایش واحد انجام بشه . اگه به خروجی های شمارنده هم نگاه کنیم متوجه میشیم که افزایش واحد مبنای کاری بسیاری از واحد ها به حساب میاد و این یعنی نمی تونیم این افزایش مقدار P.C رو معکوس کنیم .
              حالا اگه بخوایم یه همچین کاری رو توی روال برناممون انجام بدیم ، می تونیم با نوشتن حلقه های فیدبکی این کار رو انجام بدیم . مثلا از دستور go to یا امثال اینا استفاده کنیم تا خواستمون در برنامه محقق بشه موفق باشید .


              [hr]مرا عهدیست با جانان که تا جان در بدن دارم هوا خواهان کویش را چو جان خویشتن دارم
              دوستان! مدتی کمتر به سایت میام ..

              دیدگاه


                #8
                پاسخ : شمارنده برنامه منفی؟؟!!

                نوشته اصلی توسط حسام الدین
                سلام به دوستان .
                ببینید برای جواب دادن به این سوال باید ساختار معماری CPU رو مورد ارزیابی قرار بدیم . در حقیقت واحدی که برای increment خط برنامه به کار میره ، یه شمارنده ی تک جهته هست (یعنی تنها بالا شمار) که عمل شمارش رو انجام میده . خطوطی هم که به این واحد پالس میدن در واقع همین انتظار رو دارن که در سیکل کاری ، یه افزایش واحد انجام بشه . اگه به خروجی های شمارنده هم نگاه کنیم متوجه میشیم که افزایش واحد مبنای کاری بسیاری از واحد ها به حساب میاد و این یعنی نمی تونیم این افزایش مقدار P.C رو معکوس کنیم .
                حالا اگه بخوایم یه همچین کاری رو توی روال برناممون انجام بدیم ، می تونیم با نوشتن حلقه های فیدبکی این کار رو انجام بدیم . مثلا از دستور go to یا امثال اینا استفاده کنیم تا خواستمون در برنامه محقق بشه موفق باشید .


                [hr]مرا عهدیست با جانان که تا جان در بدن دارم هوا خواهان کویش را چو جان خویشتن دارم
                ممنون حسام الدین جان کاملا درسته، به خاطر ساختار سخت افزاریCPU هست که همچین امکانی وجود نداره. به هر کسی که اطلاعاتش در این زمینه کامل بود هم که میگفتم همین ساختار سخت افزاری رو بیان میکرد.
                از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
                هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
                اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
                اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
                شاد و موفق باشید

                دیدگاه

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