stringtranslate.com

Bandera de desbordamiento

En los procesadores de computadoras, el indicador de desbordamiento (a veces llamado indicador V ) es generalmente un bit único en un registro de estado del sistema que se utiliza para indicar cuándo se ha producido un desbordamiento aritmético en una operación, lo que indica que el resultado en complemento a dos con signo no cabría en la cantidad de bits utilizados para el resultado. Algunas arquitecturas pueden configurarse para generar automáticamente una excepción en una operación que dé como resultado un desbordamiento.

Por ejemplo, supongamos que sumamos 127 y 127 usando registros de 8 bits. 127+127 es 254, pero usando aritmética de 8 bits el resultado sería 1111 1110 binario, que es la codificación del complemento a dos de −2, un número negativo. Una suma negativa de operandos positivos (o viceversa) es un desbordamiento. El indicador de desbordamiento se activaría entonces para que el programa pueda estar al tanto del problema y mitigarlo o señalar un error. El indicador de desbordamiento se activa entonces cuando el bit más significativo (aquí considerado el bit de signo) se cambia sumando dos números con el mismo signo (o restando dos números con signos opuestos). El desbordamiento no puede ocurrir cuando el signo de dos operandos de suma es diferente (o el signo de dos operandos de resta es el mismo). [1]

Cuando los valores binarios se interpretan como números sin signo , el indicador de desbordamiento no tiene sentido y normalmente se ignora. Una de las ventajas de la aritmética de complemento a dos es que las operaciones de suma y resta no necesitan distinguir entre operandos con signo y sin signo. Por esta razón, la mayoría de los conjuntos de instrucciones de computadora no distinguen entre operandos con signo y sin signo, generando indicadores de desbordamiento (con signo) y de acarreo (sin signo) en cada operación, y dejando que las siguientes instrucciones presten atención a la que sea de interés. [2]

Internamente, el indicador de desbordamiento generalmente se genera mediante un acarreo exclusivo o del acarreo interno hacia adentro y hacia afuera del bit de signo.

Las operaciones bit a bit (and, or, xor, not, rotate) no tienen noción de desbordamiento con signo, por lo que el valor definido varía en diferentes arquitecturas de procesador. Algunos procesadores borran el bit incondicionalmente (lo que es útil porque las operaciones bit a bit establecen el indicador de signo, y el indicador de desbordamiento de borrado indica entonces que el indicador de signo es válido), otros lo dejan sin cambios y algunos lo establecen en un valor indefinido . Los desplazamientos y multiplicaciones permiten un valor bien definido, pero no se implementa de manera consistente. Por ejemplo, el conjunto de instrucciones x86 solo define el indicador de desbordamiento para multiplicaciones y desplazamientos de 1 bit; los desplazamientos de varios bits lo dejan indefinido.

Referencias

  1. ^ Kholodov, Igor (1 de noviembre de 2008). "Detección de desbordamiento: suma de números con signo". CIS77 Introducción a los sistemas informáticos (notas del curso). Bristol Community College . Consultado el 30 de diciembre de 2020 .
  2. ^ Allen, Ian D. (25 de febrero de 2011). "El indicador CARRY y el indicador OVERFLOW en aritmética binaria". DAT 2343 Arquitectura de sistemas informáticos (notas del curso). Algonquin College .