علم الفائض
في معالجات الحاسوب، عادةً ما تكون علامة تجاوز السعة (وتُسمى أحيانًا علامة V ) بتًا واحدًا في سجل حالة النظام ، وتُستخدم للإشارة إلى حدوث تجاوز في العملية الحسابية، مما يدل على أن نتيجة المتمم الثنائي المُوقّع لا تتسع ضمن عدد البتات المُستخدمة للنتيجة. قد تُهيأ بعض البنى لتوليد استثناء تلقائيًا عند حدوث تجاوز في العملية.
على سبيل المثال، لنفترض أننا نجمع 127 و127 باستخدام سجلات 8 بت. 127 + 127 يساوي 254، ولكن باستخدام العمليات الحسابية على 8 بت، ستكون النتيجة ثنائية 1111 1110، وهي ترميز المتمم الثنائي للعدد -2، وهو عدد سالب. يُعدّ مجموع عددين موجبين سالبًا (أو العكس) تجاوزًا. عندئذٍ، يتم ضبط علامة التجاوز لكي يكون البرنامج على دراية بالمشكلة ويعالجها أو يُشير إلى وجود خطأ. وبالتالي، يتم ضبط علامة التجاوز عندما تتغير البتة الأكثر أهمية (وهي بتة الإشارة هنا) عند جمع عددين لهما نفس الإشارة (أو طرح عددين لإشارتين مختلفتين). لا يمكن أن يحدث تجاوز عندما تكون إشارة عددين مُضافين مختلفة (أو إشارة عددين مطروحين متماثلة). [ 1 ]
عند تفسير القيم الثنائية كأعداد غير مُوقَّعة ، يصبح علم تجاوز السعة عديم المعنى ويتم تجاهله عادةً. من مزايا حساب المتمم الثنائي أن عمليات الجمع والطرح لا تحتاج إلى التمييز بين المعاملات المُوقَّعة وغير المُوقَّعة. لهذا السبب، لا تُميِّز معظم مجموعات تعليمات الحاسوب بين المعاملات المُوقَّعة وغير المُوقَّعة، إذ تُولِّد علم تجاوز السعة (للمُوقَّعة) وعلم الحمل (للغير مُوقَّعة) في كل عملية، تاركةً للتعليمات اللاحقة مهمة الانتباه إلى أيٍّ منهما ذي أهمية. [ 2 ]
داخليًا، يتم عادةً توليد علامة تجاوز السعة عن طريق عملية "أو " الحصرية للحمل الداخلي الداخل والخارج من بت الإشارة.
لا تتضمن العمليات الثنائية (و، أو، إكس أو، نفي، تدوير) مفهوم تجاوز الإشارة، لذا تختلف القيمة المحددة باختلاف بنى المعالجات. بعض المعالجات تُفرغ البت دون قيد أو شرط (وهذا مفيد لأن العمليات الثنائية تُعيّن علامة الإشارة، وبالتالي تُشير علامة تجاوز الإشارة المُفرغة إلى صحة علامة الإشارة)، بينما تُبقيها معالجات أخرى دون تغيير، وبعضها يُعيّنها إلى قيمة غير مُحددة . تسمح عمليات الإزاحة والضرب بقيمة مُحددة، ولكن هذا غير مُطبق بشكل مُتسق. على سبيل المثال، تُعرّف مجموعة تعليمات x86 علامة تجاوز الإشارة فقط لعمليات الضرب والإزاحة أحادية البت؛ أما عمليات الإزاحة متعددة البتات فتتركها غير مُحددة.
مراجع
- ↑ خولودوف، إيغور (1 نوفمبر 2008). "كشف تجاوز السعة: جمع الأعداد الموقعة" . CIS77 مقدمة في أنظمة الحاسوب (ملاحظات الدورة). كلية بريستول المجتمعية . تم الاسترجاع في 30 ديسمبر 2020 .
- ↑ ألين، إيان د. (25 فبراير 2011). "علامة الحمل وعلامة تجاوز السعة في الحساب الثنائي" . DAT 2343 هندسة نظم الحاسوب (ملاحظات الدورة). كلية ألكونكوين .
- الحساب الحاسوبي
