SCAS
(Scan string)PRÍZNAKY: | ||||||||
O |
D |
I |
T |
S |
Z |
A |
P |
C |
* |
- |
- |
- |
* |
* |
* |
* |
* |
OPIS:
Inštrukcia sa používa k vyhľadávaniu bajtu, slova uloženého v registri AL, alebo AX v bloku dát uloženom v pamäti na adrese určenej dvojicou registrov ES:DI. Po porovnaní obsahu pamäti s príslušním registrom sa obsah registru DI zväčší resp. zmenší (podľa príznaku Direction flag) o 1 alebo 2, v závislosti na tom aké veľké dáta sa vyhľadávajú.Vyhľadávanie prebieha buď:
po 8-bitoch SCASB DI, SI <- DI, SI +/- 1
alebopo 16-bitoch SCASW DI, SI <- DI, SI +/- 2
Maximálný počet vyhľadávaných položiek určuje register CX. Ak použijeme pred inštrukciou prefix REPE (opakuj, pokiaľ je rovné), vyhľadávanie sa ukončí buď pri nájdení prvého rozdielu medzi blokom dát a registrom AL, prípadne AX alebo po vyhľadaní takého množstva položiek, aké udáva register CX. Môžeme tiež pred inštrukciou použiť prefix REPNE (opakuj, pokiaľ je rôzne), v tom prípade sa vyhľadávanie ukončí buď pri nájdení prvej zhody s registrom AL, AX s blokom dát, alebo po vyhľadaní takého množstva položiek, aké udáva register CX. Ak nepoužijeme žiadny prefix, uskutoční sa vyhľadanie iba prvej položky bloku dát s registrom AL, AX bez ohľadu na
výsledok vyhľadávania.