Přidáno 2 446 bajtů,
9. 11. 2012, 23:59 ;Instrukce
: JMP - nepodmíněný skok
;Časování
: 7-183 (80286), 7-268 (80386)
;Popis
: Instrukce JMP predáva řízení programu na jinou instrukci, přičemž není uchovávaná žádna informace o návratu. [[JMP]] provádí intrasegmentové přímé a nepřímé skoky a mezisegmentové skoky. Intrasegmentové přímé skoky používají offset umísteny ihned za instrukci. Intrasegmentové nepřímé skoky užívají obsahu paměťového místa adresovaného byty, které nasledujíci po instrukčním byte. Když je instrukce intrasegmentovým přímým skokem, vzdálenost od konce instrukce k cílovému návěstí je pričtena k [[IP]] ([[EIP]]). Mezisegmentové skoky nahrazují obsah registru [[CS]]. Pro příme skoky je to zajištěno druhým slovem nasledujícim instrukci. Pro skoky nepříme je registr [[CS]] nahrazen druhým slovem nasledujícim po naznačené adrese dat (viz příklady).
;Syntaxe
: JMP (target)
;Ovlivňuje příznaky
: Pri přepnutí úlohy (task switching) jsou ovlivneny všechny příznaky; jinak nedochází k ovlivnení žádnych příznaků.
;Nedefinované příznaky
: žádné
;Výjimky v privilegovaném módu
: Jestlize je typ skoku [[NEAR]], múže byt generovaná všeobecná výjimka porušení ochrany paměti v případe, že offset místa určení je mimo hranice aktuálního segmentu [[CS]]. Jestliže je typ skoku [[FAR]], múže být generovaná také všeobecná výjimka ochrany. Jiné možné výjimky jsou: "[[deskriptor není přítomen]]", "[[chyba zásobníku]]", "[[neplatný stavový registr úlohy]]". Jestliže je u intersegmentového nepřímého skoku operandem registr, je generována výjimka "[[nedefinovaný operační kód]]".
;Výjimky v reálnem módu
: Jakmile je v případe nepřímého intersegmentového skoku operandem registr, je generováná výjimka "[[nedefinovaný operační kód]]".
;Poznámka pro 80386
: Je použit 32-bitový rozšírený ukazatel instrukce. Ukazatelové operandy jsou 48-bitové a jejich přemístení jsou 32-bitová.
;Příklad
Intersegmentový prímý skok:
JMP FAR_LABEL
Intersegmentový neprímý skok:
JMP TABLE[BP][DI]
JMP TABLE[EBP][EDI] ; jen pro 80386
Intrasegmentový prímy skok:
JMP NEAR_LABEL
Intrasegmentový neprímý skok:
JMP WORDPTR[BX][DI]
[[Category:Assembler]]
[[Category:Instrukce mikroprocesoru 80386]]