V tejto funkcnej skupine su zahrnute instrukcie ktore vykonavaju rozne operacie nad bajtovymi alebo slovnymi retazcami v pameti. Bajtovy retazec je suvisla cast pameti v ktorej je postupnost bajtov. Slovny retazec je v podstate to iste ako bajtovy, ale pracujeme naraz nad dvojicami bajtov - nad slovami. Lubovolna operacia moze byt vykonavana procesorom aj opakovane, pokial sa pred samotnou instrukciou nachadza tzv. opakovania predpona.
Vsetky zakladne operacie nad retazcami pouzivaju pre adresaciu zdrojoveho retazca registre DS:SI (od toho je nazov registra SI ako source index) a na adresaciu cieloveho sa pouzivaju registre ES:DI (podobne zase aj tu - DI ako destination index). Nie vsetky operacie musia adresovat aj cielovy a aj zdrojovy retazec. Ak pracuju nad iba jednym retazcom, ako druhy argument pouzivaju akumulator.
V nasledujucej tabulke sa nachadza prehlad zakladnych operacii nad retazcami:
Nazov | Cinnost | Priznaky | ||||||||
MOVSB |
| nemeni | ||||||||
MOVSW |
| nemeni | ||||||||
CMPSB |
| nastavuje podla vysledku porovnania | ||||||||
CMPSW |
| nastavuje podla vysledku porovnania | ||||||||
SCASB |
| nastavuje podla vysledku porovnania | ||||||||
SCASW |
| nastavuje podla vysledku porovnania | ||||||||
LODSB |
| nemeni | ||||||||
LODSW |
| nemeni | ||||||||
STOSB |
| nemeni | ||||||||
STOSW |
| nemeni |
Okrem zakladnych retazcovych operacii do tejto skupiny zaradujeme este opakovacie predpony REP, REPE, REPZ, REPNE a REPNZ. Vlozenie takejto predpony pred retazcovu operaciu sposobi opakovanie tejto operacie pokym CX nie je nulove alebo pokym sa nesplni nejaka specificka podmienka.
Cinnost tychto predpon sa da zhrnut do takychto krokov:
Predpony REP, REPE a REPZ su si navzajom plne ekvivalentne a totozne a je jedno, ktoru z nich napisete do textu programu, prekladac assemblera ich aj tak vsetky tri preklada do jedneho operacneho kodu. Podobne aj predpony REPNZ a REPNE su si tak isto ekvivalentne.
Ako sa daju tieto retazcove instrukcie vyuzit ? Operacie typu MOVS s vyhodou pouzijete napr. pri efektivnom prenasani nejakych rozsiahlych blokov pameti, STOS sa da vyuzit pri zaplnani oblasti pameti nejakym bajtom alebo slovom, LODS sam o sebe sice nema vyznam opakovat, ale mozete ho vyuzit v nejakom programe, v ktorom sa budu postupne do akumulatora nacitavat nejake data a potom nejak spracuvat. Pomocou operacii typu CMPS sa da velmi pekne zrealizovat porovnavanie dvoch retazcov v pameti a SCAS je zase idealny pri hladani nejakeho bajtu alebo slova v oblasti pameti.