carry flag
Megjelenés
Főnév
carry flag (tsz. carry flags)
- (informatika) A Carry Flag egy processzorállapot-jelző bit, amely azt mutatja meg, hogy egy művelet során az utolsó legjelentősebb bitből (legmagasabb helyiértékű bitből) “átvitel” vagy “hordozás” történt-e. Ez elsősorban az unsigned (előjelnélküli) műveletek esetén fontos.
Mire használjuk?
- Összeadásnál: Ha a két szám összege meghaladja az adott regiszter bitméretét, azaz túlcsordul, akkor a Carry Flag beáll (1 lesz).
- Kivonásnál: Ha a kisebbik számot vonjuk ki egy nagyobbból, akkor kölcsönt kell venni, és ezt is a Carry Flag jelzi (szintén beáll).
- Többbájtos (multi-byte) vagy több szavas (multi-word) számok összeadásánál és kivonásánál segít, hogy az átvitel megfelelően továbbítódjon a következő byte vagy szó felé.
Hogyan működik?
- CF = 1, ha:
- Összeadáskor az eredmény nagyobb, mint amit a regiszterbe be lehet tárolni (pl. 8 bites regiszternél az eredmény 256 vagy nagyobb).
- Kivonáskor kölcsönt kellett venni (a kisebb számot kivontuk a nagyobból, ami nem megengedett unsigned műveletként).
- CF = 0, ha:
- Összeadás vagy kivonás után nincs túlcsordulás vagy kölcsönvétel.
Példa (8 bites összeadás)
Legyen az AL regiszter értéke: 0xFF (255 decimal), és hozzáadunk 0x01-et:
0xFF + 0x01 = 0x100 (dec: 256)
De az AL csak 8 bitet tud tárolni, azaz csak a 0x00-t tudja tárolni, a 9. bit pedig túlcsordulás (átvitel) lesz, amit a Carry Flag jelöl.
Tehát az összeadás után:
- AL = 0x00
- CF = 1 (túlcsordulás történt)
Assembly példa (x86)
mov al, 0xFF ; AL = 255
add al, 0x01 ; AL = 0x00, CF = 1 (átvitel)
Ha például két 16 bites számot akarunk összeadni byte-onként, akkor az ADC (Add with Carry) utasítást használjuk, ami figyelembe veszi ezt a Carry Flag-et, és átviszi a hordozást.
- carry flag - Szótár.net (en-hu)
- carry flag - Sztaki (en-hu)
- carry flag - Merriam–Webster
- carry flag - Cambridge
- carry flag - WordNet
- carry flag - Яндекс (en-ru)
- carry flag - Google (en-hu)
- carry flag - Wikidata
- carry flag - Wikipédia (angol)