SCAS/SCASB/SCASW - porovnání řetezcových dat: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
(Vytvorená stránka „;Instrukce : SCAS/SCASB/SCASW - porovnání řetezcových dat ;Časování : 7 ;Popis : Srovnává byte (AL), slovo(AX) s ES:DI nebo s ES:EDI....“) |
m (1 revízia: Assembler pismeno S-T) |
(Žádný rozdíl)
|
Aktuální verze z 18. 1. 2013, 16:08
- Instrukce
- SCAS/SCASB/SCASW - porovnání řetezcových dat
- Časování
- 7
- Popis
- Srovnává byte (AL), slovo(AX) s ES:DI nebo s ES:EDI. Instrukce SCAS odečíta paměťový byte nebo slovní operand adresovaný ES:DI (ES:EDI) buď od registru AL nebo AX. Výsledek je ignorován a jsou nastavovány jen příslušné příznaky. Operand v paměti musí být adresován registrem ES. Po srovnání je DI (EDI) inkrementován při DF=0 jinak je DI (EDI) dekrementován. Inkrement/dekrement je 1 pro bytový a 2 pro slovní operand.
- Syntaxe
- SCAS destination, source
- SCASB (žádné operandy)
- SCASW (žádné operandy)
- Nedefinované příznaky
- žádné
- Výjimky v privilegovaném módu
- Jestliže registry CS, DS nebo ES obsahují neplatné efektivní 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
MOV CL, 10H ; srovnání 16 byte LEA DI, VALUE1 ; umístění retezce MOV AL, 'S' ; hledany znak REPNE SCASB ; dokud není nalezen, prohlížej další byty