TEST - test logické srovnání

Z Delphi & Pascal (česká wiki)
Verze z 18. 1. 2013, 16:05, 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
TEST - test logické srovnání
Časování
2-6 (80386), 2-5 (80386)
Popis
Instrukce TEST provádí logické AND bit-po-bitu nad dvěma operandy. Každý bit výsledku je nastaven do 1 při jedničkových bitech obou srovnávaných operandu jinak je bit výsledku nastaven do 0. Výsledek instrukce není použit jsou jen nastavený odpovídajíci příznaky.


Syntaxe
TEST destination, source


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


Nedefinované příznaky
AF


Výjimky v privilegovaném módu
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 na offsetu 0FFFFH je generováno přerušení INT 13.


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


Příklad
TEST AX, BX
TEST EAX, EBX           ; jen pro 80386
TEST MEM_BYTE, 6
TEST TABLE[BX][DI], CX
TEST TABLE[BX][DI], ECX ; jen pro 80386