LODS/LODSW/LODSB - zaveď bytový nebo slovní řetezec do stradače

Z Delphi & Pascal (česká wiki)
Skočit na navigaci Skočit na vyhledávání
Instrukce
LODS/LODSW/LODSB - zaveď bytový nebo slovní řetezec do stradače
Časování
5
Popis
Instrukce LODS přesouva slovní nebo bytový operand z místa zdrojového operandu referovaného registrem SI (ESI) do stradače AX nebo AL. SI (ESI) je automaticky aktualizován. Jestliže je DF = 0 (bylo provedeno CLD), je SI (ESI) inkrementovan. Jestliže je DF = 1 (bylo provedeno STD), je SI (ESI) dekrementován. Inkrement respektívě dekrement je roven 1 pro bytové operandy a 2 pro slovní operandy.


Syntaxe
LODS source_string
LODSB (žádné operandy)
LODSW (žá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é efektívni 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 leží slovní operand na offsetu OFFFFH, je generováno přerušení INT 13.


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


Příklad
LEA  SLDATA    ; jsou-li data 16-bitová
LODS           ; je výsledek v AX