NEG - negace ve dvojkovém doplňkovém kódu

Z Delphi & Pascal (česká wiki)
Verze z 10. 1. 2013, 15:57, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání
Instrukce
NEG - negace ve dvojkovém doplňkovém kódu
Časování
2-7 (80286), 2-6 (80386)
Popis
Instrukce NEG odečíta operand od 0, pričíta k takto vznikle hodnote 1 a vrací výsledek na místo původního operandu, vytvárejíc tak dvojkový doplnek. Příznak CF je nastaven na 1 (s výjimkou nulového operandu, který způsobí nastavení CF na 0).


Syntaxe
NEG destination


Ovlivňuje příznaky
OF, SF, CF, ZF, AF, PF


Nedefinované příznaky
žádné


Výjimky v privilegovaném módu
V případe, že výsledek je v segmentu chráněném proti zápisu, je generována všeobecná výjimka porušení ochrany paměti. Jestliže registry CS, DS nebo ES obsahují neplatné efektívní adresy operandu, je generována všeobecná výjimka porušení ochrany paměti. Jestliže SS obsahuje neplatnou adresu, je generována výjimka "chyba zásobníku".


Výjimky v reálnem módu
Jestliže je slovní operand na offsetu 0FFFFH, je generováno přerušení INT 13.


Poznámka pro 80386
Šírka slova je 32 bitů.


Příklad
 NEG AL
 NEG EBX (jen pro 80386)