MOV - přesun dat
Verze z 4. 1. 2013, 18:02, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (1 revízia: Assembler pismeno L,M)
- Instrukce
- MOV - přesun dat
- Časování
- 2-19 (80286), 2-22 (80386)
- Popis
- Instrukce MOV kopíruje obsah zdrojového operandu do operandu cílového. K dispozici je několik instrukci MOV které mají všechny stejnou funkci: kopírují zdrojový operand do cílového beze změny zdrojového operandu.
- Syntaxe
- MOV destination,source
- Ovlivňuje příznaky
- žádné
- Nedefinované příznaky
- žádné
- Výjimky v privilegovaném módu
- Jestliže je naplňován segmentový registr, mohou být generovány výjimky:
- všeobecná výjimka porušení ochrany paměti
- výjimka "chyba zásobníku"
- výjimka "deskriptor nenalezen".
Všeobecná výjimka porušení ochrany paměti může být generována také v případe, že cílový operand leží v segmentu nepřístupněm zápisu. Jestliže registry CS, DS nebo ES obsahují neplatné efektívni adresy operandu, je generována všeobecná výjimka 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ží operand na offsetu OFFFFH, je generováno přerušení INT 13.
- Poznámka pro 80386
- Šírka slova je 32 bitů. Adresy jsou vytvořeny pomocí 32-bitových efektívnich adres nebo 32-bitových offsetu.
- Příklad
Do stradače z paměti MOV AX, MEM_WRD MOV ECX, MYWORD ; jen pro 80386
Do paměti ze stradače MOV MEM_BYTE, AL
Do paměti/registru ze segmentového registru MOV BX, ES MOV TABLE[BX], SS
Do segmentového registru z paměti/registru MOV ES, NEXT_WRD[SI] MOV DS, AX
Do registru z registru MOV CX, DI MOV EAX, ECX ; jen pro 80386
Do registru z paměti/registru MOV AX, MEM_VAL MOV CX, [BP][SI]
Do registru z bezprostredního operandu MOV DI, 513 MOV EAX, 12345678H ;jen pro 80386
Do paměti/registru z bezprostredního operandu MOV TABLE[BP][SI], 25 MOV BX, 77