MOV - přesun dat

Z Delphi & Pascal (česká wiki)
Verze z 4. 1. 2013, 17:35, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky)
(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
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 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