STOS/STOSB/STOSW - uschovej řetezcová data

Z Delphi & Pascal (česká wiki)
Verze z 18. 1. 2013, 16:08, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (1 revízia: Assembler pismeno S-T)
(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
STOS/STOSB/STOSW - uschovej řetezcová data
Časování
3 (80286), 4 (80386)
Popis
Instrukce STOS přesouvá obsah buď AL nebo AX na byte nebo slovo v paměti. Táto lokace je adresovaná ES:DI (resp. ES:EDI). Cílový operand musí být adresovatelný z registru ES. Registr DI (EDI) je automaticky inkrementován/dekrementován při DF = 0/DF = 1. Inkrement/dekrement je 1 pro bytové přesuny a 2 pro slovní přesuny.


Syntaxe
STOS destination_string
STOSB (žádné operandy)
STOSW (žádné operandy)


Ovlivňuje příznaky
žádné


Nedefinované příznaky
žádné


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 ochrany paměti. Jestliže SS obsahuje neplatnou adresu je generovaná výjimka "chyba zásobníku". Jestliže je místo určeníí v segmentu nepřístupném zápisu je generovaná všeobecná výjimka ochrany.


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 ECX, 0FFCCAAH ; jen pro 80386
LEA EDI, VARIABLE
MOV AX, '-'
REP STOSB