XCHG - záměna bytů nebo slov

Z Delphi & Pascal (česká wiki)
Verze z 21. 1. 2013, 17:40, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (1 revízia: Assembler pismeno T-X)
(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
XCHG - záměna bytů nebo slov
Časování
3-5
Popis
Instrukce XCHG zaměňuje bytový nebo slovní zdrojový operand s odpovídajícím cílovým operandem.


Syntaxe
XCHG destination, source


Ovlivňuje příznaky
žádné


Nedefinované příznaky
žádné


Výjimky v privilegovaném módu
Jestliže operand leží v segmentu nepřístupném zápisu je generovaná všeobecná výjimka porušení ochrany paměti. Jestliže registry CS, DS nebo ES obsahují neplatné efektivní adresy operandu je generovaná všeobecná výjimka porušení ochrany paměti. Jestliže SS obsahuje neplatnou adresu je generovaná výjimka "chyba zásobníku".


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


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


Příklad
XCHG AX, BX
XCHG DH, DATA_BTE
XCHG AL, DL
XCHG EAX, EBX     ; jen pro 80386


Poznámka
Při užití instrukce XCHG s prefixem LOCK lze efektně implementovat semafóry pro obsluhu sdílených zdrojů v operačním systému.