stringtranslate.com

Bandera de desbordamiento

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 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 encajaría en el Número de bits utilizados para el resultado. Algunas arquitecturas pueden configurarse para generar automáticamente una excepción en una operación que genera un desbordamiento.

Un 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 en complemento a dos de −2, un número negativo. Una suma negativa de operandos positivos (o viceversa) es un desbordamiento. Luego se establecería el indicador de desbordamiento para que el programa pueda ser consciente del problema y mitigarlo o señalar un error. Por tanto, la bandera de desbordamiento se activa 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 y sin signo. Por esta razón, la mayoría de los conjuntos de instrucciones de computadora no distinguen entre operandos con y sin signo, generando indicadores de desbordamiento (con signo) y de acarreo (sin signo) en cada operación, y dejando que se sigan las instrucciones para prestar atención a cualquiera 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 con signo, por lo que el valor definido varía en diferentes arquitecturas de procesador. Algunos procesadores borran el bit incondicionalmente (lo cual es útil porque las operaciones bit a bit establecen el indicador de signo, y el indicador de desbordamiento claro indica que el indicador de signo es válido), otros lo dejan sin cambios y algunos lo configuran 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 cambios de varios bits lo dejan indefinido.

Referencias

  1. ^ Kholodov, Igor (1 de noviembre de 2008). "Detección de desbordamiento: suma de números firmados". CIS77 Introducción a los Sistemas Informáticos (apuntes del curso). Colegio Comunitario de Bristol . 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 Computacionales (apuntes del curso). Colegio Algonquin .