De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

En los procesadores de computadora, el indicador de desbordamiento (a veces llamado indicador V ) suele ser un solo bit en un registro de estado del sistema utilizado para indicar cuándo se ha producido un desbordamiento aritmético en una operación, lo que indica que el resultado del complemento a dos con signo no encajaría en número de bits utilizados para el resultado. Algunas arquitecturas pueden configurarse para generar automáticamente una excepción en una operación que resulte en un desbordamiento.

Un ejemplo, suponga 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 en 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 establecerá entonces para que el programa pueda ser consciente del problema y mitigarlo o señalar un error. La bandera de desbordamiento se establece así 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 en 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 firmados y no firmados, generando tanto desbordamiento (con signo) como indicadores de acarreo (sin signo) en cada operación, y dejando que se sigan las instrucciones para prestar atención a la que sea de interés. [2]

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

Las operaciones bit a bit (y, o, xor, no, rotar) no tienen una noción de desbordamiento firmado, por lo que el valor definido varía en diferentes arquitecturas de procesador; algunos borran el bit incondicionalmente, otros lo dejan sin cambios y aún así lo establecen en un valor indefinido . Los cambios y las 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 cambios de 1 bit; los cambios de varios bits lo dejan indefinido.

Referencias [ editar ]

  1. ^ Kholodov, Igor (1 de noviembre de 2008). "Detección de desbordamiento: adición de números firmados" . 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). "La bandera CARRY y la bandera OVERFLOW en aritmética binaria" . DAT 2343 Arquitectura de sistemas informáticos (notas del curso). Colegio Algonquin .