اطلاعیه

Collapse
No announcement yet.

رقم نقلی

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

    رقم نقلی

    همانطور که میدونیم پرچم CF نقلی خارج شده از بیت آخر را نشان می دهد
    حال سوال من این است که به چه دلیل کامپیوتر بایستی CF را چک کند ؟
    یعنی اگر CF کنترل نشود چه اتفاقی خواهد افتاد ؟
    در یکی از کتابها نوشته بود که اگر CF=1 شود نشان میدهد محاسبات کامپیوتر در حالت بدون علامت اشتباه است و کامپیوتر بایستی جواب را اصلاح کند
    آیا این جواب صحیح است ؟
    مردود شدن بهتر از با تقلب قبول شدن است

    #2
    پاسخ : رقم نقلی

    مردود شدن بهتر از با تقلب قبول شدن است

    دیدگاه


      #3
      پاسخ : رقم نقلی

      :eek:
      مردود شدن بهتر از با تقلب قبول شدن است

      دیدگاه


        #4
        پاسخ : رقم نقلی

        نوشته اصلی توسط masoud58
        همانطور که میدونیم پرچم CF نقلی خارج شده از بیت آخر را نشان می دهد
        حال سوال من این است که به چه دلیل کامپیوتر بایستی CF را چک کند ؟
        یعنی اگر CF کنترل نشود چه اتفاقی خواهد افتاد ؟
        در یکی از کتابها نوشته بود که اگر CF=1 شود نشان میدهد محاسبات کامپیوتر در حالت بدون علامت اشتباه است و کامپیوتر بایستی جواب را اصلاح کند
        آیا این جواب صحیح است ؟
        کامپیوتر چک نمیکنه شما چک میکنید.
        مثلا شما میخواید ببینید که آیا Overflow رخ داده یا نه، اگر رخ بده این پرچم یک میشه.
        در بعضی عملیات ها هم لازمه مثلا وقتی Shift انجام میشه عدد خارج شده در CF ذخیره میشه که این کار شما رو راحت میکنه مثلا شما میتونید هم شیفت بدید هم بعدش بگید اگر یک بود فلان کار رو بکنه یا نکنه.

        خیر اون دلیلی که آوردید درست نیست. یک بودن CF به معنای اشتباه بودن نیست به معنای Overflow هست که لزوما خطا نیست.

        دیدگاه


          #5
          پاسخ : رقم نقلی

          نوشته اصلی توسط hamidreza.nayeri
          کامپیوتر چک نمیکنه شما چک میکنید.
          مثلا شما میخواید ببینید که آیا Overflow رخ داده یا نه، اگر رخ بده این پرچم یک میشه.
          در بعضی عملیات ها هم لازمه مثلا وقتی Shift انجام میشه عدد خارج شده در CF ذخیره میشه که این کار شما رو راحت میکنه مثلا شما میتونید هم شیفت بدید هم بعدش بگید اگر یک بود فلان کار رو بکنه یا نکنه.

          خیر اون دلیلی که آوردید درست نیست. یک بودن CF به معنای اشتباه بودن نیست به معنای Overflow هست که لزوما خطا نیست.
          با تشکر از پاسخ شما
          همانطور که می دونیم اولاً CF توسط کامپیوتر بدست میاد نه کاربر ( منظور از چک کردن ه بدست آوردنش بود ) در ضمن سوالی داشتم آیا CF فقط توسط دستورات اسمبلی کنترل میشه یا با زبانهای برنامه نویسی دیگه هم میشه اونو کنترل کرد ؟
          تو یه کتابی خوندم خطای سرریز این برخلاف اون چیزی هست که شما گفتید
          در ضمن اگه CF هم به معنای OVERFLOW باشه پس فرق CF با OF در چیه ؟ ( هر دو که سرریز شدن !!!!!!!!!!!!!!!!!!!)
          مردود شدن بهتر از با تقلب قبول شدن است

          دیدگاه


            #6
            پاسخ : رقم نقلی

            نوشته اصلی توسط masoud58
            با تشکر از پاسخ شما
            همانطور که می دونیم اولاً CF توسط کامپیوتر بدست میاد نه کاربر ( منظور از چک کردن ه بدست آوردنش بود ) در ضمن سوالی داشتم آیا CF فقط توسط دستورات اسمبلی کنترل میشه یا با زبانهای برنامه نویسی دیگه هم میشه اونو کنترل کرد ؟
            تو یه کتابی خوندم خطای سرریز این برخلاف اون چیزی هست که شما گفتید
            در ضمن اگه CF هم به معنای OVERFLOW باشه پس فرق CF با OF در چیه ؟ ( هر دو که سرریز شدن !!!!!!!!!!!!!!!!!!!)
            خواهش میکنم
            CF رو فقط توسط اسمبلی میشه کنترل کرد چون فقط تو اسمبلی تعریف شده مگر زبانهایی که Inline Assembly رو پشتیبانی میکنن مثل C++

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

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

            دیدگاه


              #7
              پاسخ : رقم نقلی

              یه سوال دیگه هم داشتم
              وقتی OF=1 میشه کامپیوتر بایستی چیکار کنه ؟
              باید سرریز رو برطرف کنه یا نه ؟
              سرریز چیز خوبی هست یا نه ؟
              ممنون از همه شما
              مردود شدن بهتر از با تقلب قبول شدن است

              دیدگاه


                #8
                پاسخ : رقم نقلی

                نوشته اصلی توسط masoud58
                یه سوال دیگه هم داشتم
                وقتی OF=1 میشه کامپیوتر بایستی چیکار کنه ؟
                باید سرریز رو برطرف کنه یا نه ؟
                سرریز چیز خوبی هست یا نه ؟
                ممنون از همه شما
                کامپیوتر لازم نیست کاری انجام بده. گرچم های status register مرتبا در حال صفر و یک شدن هستنتد و نگاه کردن به اونها هم ابدا مشکلی رو به وجود نمیاره.
                پرچم ها برای موارد خاص نوشته شده اند. مثلا شما فرض کنید یک شمارنده ۸ بیتی دارید که داره از صفر میشماره تا بالا میخواید وقتی دوباره صفر شد متوجه بشید و کاری انجام بدید خوب باید بعد از هربار اضافه کردن CF چک بشه تا معلوم بشه این اتفاق افتاده یا نه.
                OF هم همینه باید توی یک مثال برنامه نویسی خاص ببینید آیا چک کردنش کار شما رو راحت میکنه یا خیر ولی در حالت کلی یک شدن یا صفر شدن پرچم ها نشانه خطا نیست و لازم هم نیست چک بشند.

                دیدگاه


                  #9
                  پاسخ : رقم نقلی

                  نمیدونم برداشتم از صحبت های شما درست هست یا نه
                  اما آدم اینطور میفهمه اگه واسه کاری به زبانهای سطح پایین مثل اسمبلی احتیاجی نباشه اصلاً نیازی به رجیستر پرچم نیست
                  آیا این نتیجه گیری من درسته ؟
                  یا نه در زبانهای سطح بالا هم بایستی پرچم ها کنترل بشه ؟
                  مردود شدن بهتر از با تقلب قبول شدن است

                  دیدگاه


                    #10
                    پاسخ : رقم نقلی

                    نوشته اصلی توسط masoud58
                    نمیدونم برداشتم از صحبت های شما درست هست یا نه
                    اما آدم اینطور میفهمه اگه واسه کاری به زبانهای سطح پایین مثل اسمبلی احتیاجی نباشه اصلاً نیازی به رجیستر پرچم نیست
                    آیا این نتیجه گیری من درسته ؟
                    یا نه در زبانهای سطح بالا هم بایستی پرچم ها کنترل بشه ؟
                    برداشتتون درسته. در زبانهای سطح بالا اصلا نیازی نیست که بخواید این پرچم رو چک کنید.

                    دیدگاه


                      #11
                      پاسخ : رقم نقلی

                      نوشته اصلی توسط hamidreza.nayeri
                      برداشتتون درسته. در زبانهای سطح بالا اصلا نیازی نیست که بخواید این پرچم رو چک کنید.
                      ببخشید اینقدر سوال میپرسم
                      اگه ما یه پروسسوری طراحی کنیم که صرفا با زبانهای سطح بالا کار کنه می تونیم status register رو ازش حذف کنیم ؟
                      مردود شدن بهتر از با تقلب قبول شدن است

                      دیدگاه


                        #12
                        پاسخ : رقم نقلی

                        نوشته اصلی توسط masoud58
                        ببخشید اینقدر سوال میپرسم
                        اگه ما یه پروسسوری طراحی کنیم که صرفا با زبانهای سطح بالا کار کنه می تونیم status register رو ازش حذف کنیم ؟
                        خواهش میکنم این حرفا چیه
                        نه نمیتونید حذف کنید. ببینید تو زبان های سطح بالا شما چک نمیکنید اما خود زبان چک میکنه. بعضی از بیت های Status Register هم حیاتی هستند و اصلا قابل حذف شدن نیستند.
                        مثلا وقتی شما بزرگتری کوچکتری رو دارید چک میکنید عملا زبان سطح بالای شما با استفاده از status reg میفهمه که دو عدد نسبت به هم چه حالتی رو دارند، هر چند که شما این رو نمیبینید و متوجه هم نمیشید.

                        دیدگاه


                          #13
                          پاسخ : رقم نقلی

                          نوشته اصلی توسط hamidreza.nayeri
                          خواهش میکنم این حرفا چیه
                          نه نمیتونید حذف کنید. ببینید تو زبان های سطح بالا شما چک نمیکنید اما خود زبان چک میکنه. بعضی از بیت های Status Register هم حیاتی هستند و اصلا قابل حذف شدن نیستند.
                          مثلا وقتی شما بزرگتری کوچکتری رو دارید چک میکنید عملا زبان سطح بالای شما با استفاده از status reg میفهمه که دو عدد نسبت به هم چه حالتی رو دارند، هر چند که شما این رو نمیبینید و متوجه هم نمیشید.
                          ممنون از پاسخ و پیگیری شما :applause:
                          مردود شدن بهتر از با تقلب قبول شدن است

                          دیدگاه


                            #14
                            پاسخ : رقم نقلی

                            خواهش میکنم

                            دیدگاه

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