A számítógépes programozásban a flag egy vagy több bitre utalhat, melyek egy bináris érték vagy egy Boole-változó tárolására szolgálnak, és speciális kódfeltételeket jeleznek, például a fájl üres vagy teli várólista állapotát.
A flagek egy meghatározott adatszerkezet, például egy adatbázisrekord (row) tagjaként találhatók meg, és a flagben szereplő érték jelentése általában a hozzá tartozó adatszerkezettel kapcsolatban kerül meghatározásra. Sok esetben a flag bináris értéke a lehetséges körülmények vagy állapotok egyikét jelenti. Más esetekben a bináris értékek egy vagy több attribútumot képviselhetnek egy bitmezőben, melyek gyakran képességekhez vagy jogosultságokhoz kapcsolódnak, mint például „írható” vagy „törölhető”. A flag-értékekhez azonban sok más lehetséges jelentés is rendelhető. A flagek egyik gyakori felhasználása az adatszerkezetek jelölése vagy kijelölése a későbbi feldolgozáshoz.
A mikroprocesszorokban és más logikai eszközökben a flageket általában különböző műveletek közbenső vagy végső állapotának vagy eredményének ellenőrzésére, ill. jelzésére használják. A mikroprocesszorok jellemzően rendelkeznek például egy állapotregiszterrel, mely ilyen flagekből áll, és a flagek különböző művelet utáni állapotok jelzésére szolgálnak, például aritmetikai túlcsordulás esetén.A leggyakoribb CPU állapotregiszter-jelzők, amelyeket szinte az összes modern processzor alkalmaz: a Zero: Azt jelzi, hogy egy aritmetikai vagy logikai művelet eredménye nulla volt.; Carry: Az átvitel-flag lehetővé teszi egy szónál nagyobb számok összeadását/kivonását úgy, hogy szükség szerint egy bináris számjegyet visz át egy kevésbé jelentős szóból egy jelentősebb szó legkevésbé jelentős bitjébe.; Sign vagy Negative: Azt jelzi, hogy egy matematikai művelet eredménye negatív.; Overflow: Azt jelzi, hogy egy művelet előjeles eredménye túl nagy ahhoz, hogy beleférjen a regiszter szélességébe a kettes komplemens reprezentációval. A flagek felhasználhatók a későbbi műveletekben, például a feltételes ugróutasítások feldolgozásában. Például egy JE (Jump if Equal) utasítás az x86 assembly nyelvben ugráshoz vezet, ha a Z (zéró) flaget valamilyen korábbi művelet beállította.
A parancssori kapcsolót flagnek is nevezik. A parancssori programok gyakran egy opcióelemzővel indulnak, mely a parancssori kapcsolókat a cikk értelmében flagekre fordítja.
Jegyzetek
Fordítás
Kapcsolódó szócikkek Regiszter Bitmező Szemafor
Kategória:CPU-architektúrák Kategória:Regiszterek