JMP (instrukce x86) - JMP (x86 instruction)
![]() | Tento článek musí být aktualizováno.Února 2017) ( |
V x86 assembler, JMP
návod provede bezpodmínečný skok. Taková instrukce přenáší tok provedení změnou ukazatel instrukce Registrovat. Existuje celá řada různých opcodes které provádějí skok; podle toho, zda je procesor v skutečný režim nebo chráněný režim a je použita instrukce přepsání, instrukce může trvat 16-bit, 32-bit, nebo segment: offset ukazatele.[1]
Existuje mnoho různých forem skoků: relativní, podmiňovací způsob, absolutní a registrační nepřímé skoky.
Následující příklady ilustrují:
- relativní skok s 16bitovým ukazatelem;
- skok do dálky (mezisegment), relativní skok s 32bitovým ukazatelem;
- a registr-nepřímý absolutní skok pomocí Registr EAX.
(Všimněte si, že i když jsou první a druhý skok relativní, obvykle se místo relativního posunu, jak je zakódován v operačním kódu, zobrazí cílová adresa.)
Příklad jedna: Načtěte IP s novou hodnotou 0x89AB
, poté načtěte CS s 0xACDC
a IP s 0x5578
.
JMP 0x89ABJMP 0xACDC:0x5578
Příklad dva: Načtěte EIP s hodnotou 0x56789AB1
, pouze v chráněném režimu nebo neskutečný režim.
JMP 0x56789AB1
Příklad tři: Přejít na hodnotu uloženou v registru EAX, pouze v chráněném režimu.
JMP EAX
Reference
- ^ „Intel Architecture Software Developer's Manual, Volume 2: Instruction Set Reference Manual (6,5 MB)“ (PDF). Archivovány od originál (PDF) dne 19. 2. 2009. Citováno 2009-11-03.