Overflow flag

indicador del processador que indica si s'ha produït un desbordament aritmètic signat

En els processadors d'ordinadors, la bandera de desbordament (de vegades anomenada bandera V) sol ser un bit únic en un registre d'estat del sistema que s'utilitza per indicar quan s'ha produït un desbordament aritmètic en una operació, indicant que el resultat del complement de dos signat no encaixaria en el nombre de bits utilitzats per al resultat. Algunes arquitectures es poden configurar per generar automàticament una excepció en una operació que produeixi un desbordament.[1]

Un exemple bàsic d'un desbordament de memòria intermèdia. En escriure 10 bytes de dades a "A", que només té 8 bytes disponibles, "B" es canvia sense voler.

Un exemple, suposem que afegim 127 i 127 utilitzant registres de 8 bits. 127+127 és 254, però utilitzant l'aritmètica de 8 bits el resultat seria 1111 1110 binari, que és la codificació del complement a dos de -2, un nombre negatiu. Una suma negativa d'operands positius (o viceversa) és un desbordament. Aleshores s'establiria la bandera de desbordament perquè el programa pugui ser conscient del problema i mitigar-ho o senyalar un error. Així, la bandera de desbordament s'estableix quan el bit més significatiu (aquí considerat el bit de signe) es canvia sumant dos nombres amb el mateix signe (o restant dos nombres amb signes oposats). El desbordament no es pot produir quan el signe de dos operands d'addició és diferent (o el signe de dos operands de resta és el mateix).[2]

Quan els valors binaris s'interpreten com a nombres sense signe, la bandera de desbordament no té sentit i normalment s'ignora. Un dels avantatges de l'aritmètica del complement a dos és que les operacions de suma i resta no necessiten distingir entre operands amb signe i sense signe. Per aquesta raó, la majoria de conjunts d'instruccions d'ordinador no distingeixen entre operands signats i sense signe, generant tant (signat) desbordament com (sense signe) senyaladors de transport en cada operació, i deixant que segueixin les instruccions per prestar atenció a qualsevol que sigui d'interès.[3]

Internament, la bandera de desbordament es genera normalment per un bit exclusiu o del transport intern dins i fora del signe.

Les operacions bit a bit (i, o, xor, no, rotar) no tenen una noció de desbordament signat, de manera que el valor definit varia en diferents arquitectures de processador. Alguns processadors esborren el bit de manera incondicional (cosa útil perquè les operacions per bit estableixen el senyalador de signe i el senyalador de desbordament clar indica que el senyalador de signe és vàlid), altres el deixen sense canvis i alguns el configuren en un valor indefinit. Els canvis i multiplicacions permeten un valor ben definit, però no s'implementa de manera coherent. Per exemple, el conjunt d'instruccions x86 només defineix el senyalador de desbordament per a multiplicacions i desplaçaments d'1 bit; els desplaçaments de diversos bits ho deixen sense definir.[4]

Referències

🔥 Top keywords: PortadaMarc Cucurella i SasetaLamine YamalNico WilliamsRodrigo Hernández CascanteCarlos Alcaraz GarfiaViquipèdia:ContacteDaniel Olmo CarvajalShannen DohertyLuis de la Fuente CastilloRobin Le NormandEspecial:CercaÁlvaro Borja Morata MartínCampionat d'Europa de futbolAymeric LaporteMikel Oyarzabal UgarteÀgata Roca i MaragallFabián Ruiz PeñaÀ Punt FMThe Parallax ViewNovak ĐokovićIñaki WilliamsDonald TrumpSelecció de futbol d'EspanyaMare de Déu del CarmeOques GrassesLuke PerryEspecial:Canvis recentsCopa del Món de FutbolBandera de MataróPet Shop BoysDaniel Carvajal RamosGrand Slam (tennis)Llista de topònims de la Sagrada Família i el Fort PiencLlista de topònims de l'Esquerra de l'Eixample i Sant AntoniLlista de topònims de la Dreta de l'EixampleUnai Simón MendibilByViruZzHarry Kane