JMP (x86 instruction)

JMP (x86 instruction)

In the x86 assembly language, the JMP instruction is a mnemonic for an unconditional JuMP. Such an instruction transfers the flow of execution by changing the instruction pointer register. The x86 assembly language actually contains a number of different opcodes that perform a jump. Depending on whether the processor is in real mode or protected mode, and an override instruction is used, the instructions may take 16-bit, 32-bit, or segment:offset pointers. [cite web |url=http://download.intel.com/design/PentiumII/manuals/24319102.PDF|format = PDF| title=Intel Architecture Software Developer's Manual, Volume 2: Instruction Set Reference Manual|accessdate=2007-07-13]

There are many different forms of jumps; Relative jumps, conditional jumps, absolute jumps and register-indirect jumps.

JMP $ is commonly used to hang the computer. The $ is used to refer to the same location where the instruction starts. That means that the instruction will jump to itself and thereby creating an endless loop.

The following examples illustrate the following types of jumps: a relative jump with a 16-bit pointer, a long jump (inter-segment), a relative jump with a 32-bit pointer, and a register-indirect absolute jump using the EAX register.

"Note that although the first and third jumps are relative, commonly the destination address is shown instead of the relative offset as encoded in the opcode." JMP 0x89AB ; loads IP with the new value 0x89AB JMP 0xACDC:0x5578 ; loads CS with 0xACDC and IP with 0x5578

JMP 0x56789AB1 ; loads IP with the value 0x56789AB1 ; only works in protected mode or unreal mode

JMP EAX ; Jumps to the value stored in the register EAX. ; only works in protected mode

See also

* conditional jump

References


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • JMP — may refer to:* JMP (statistical software), a statistical analysis application by SAS Institute, Inc. * JMP (x86 instruction) * Jean Marie Pfaff, a Belgian football goalkeeper …   Wikipedia

  • X86 assembly language — is the assembly language for the x86 class of processors, which includes Intel s Pentium series and AMD s Athlon series. Like all assembly languages, it uses short mnemonics to represent the fundamental operations that the CPU in a computer can… …   Wikipedia

  • Jeu d'instruction x86 — Article détaillé : Jeu d instructions. Le jeu d instructions du x86 a subi de nombreux changements au cours du temps. La plupart d entre eux ne sont que des ajouts au jeu d instruction initial afin d apporter de nouvelles fonctionnalités.… …   Wikipédia en Français

  • Lenguaje ensamblador x86 — El lenguaje ensamblador x86 es la familia de los lenguajes ensambladores para los procesadores de la familia x86, que incluye desde los procesadores Intel 8086 y 8088, pasando por los Pentium de Intel y los Athlon de AMD y llegando hasta los… …   Wikipedia Español

  • Jeu D'instruction X86 — Article détaillé : Jeu d instructions. Le jeu d instructions du x86 a subi de nombreux changements au cours du temps. La plupart d entre eux ne sont que des ajouts au jeu d instruction initial afin d apporter de nouvelles fonctionnalités.… …   Wikipédia en Français

  • Intel 8086 y 8088 — Intel 8088 Microprocesador Microprocesador Intel 8088 Producción 1979   1982 Fabricante(s) …   Wikipedia Español

  • Assembly language — See the terminology section below for information regarding inconsistent use of the terms assembly and assembler. Motorola MC6800 Assembly Language An assembly language is a low level programming language for computers, microprocessors,… …   Wikipedia

  • Buffer overflow — In computer security and programming, a buffer overflow, or buffer overrun, is an anomalous condition where a process attempts to store data beyond the boundaries of a fixed length buffer. The result is that the extra data overwrites adjacent… …   Wikipedia

  • CPUID — The CPUID opcode is a processor supplementary instruction (its name derived from CPU IDentification) for the x86 architecture. It was introduced by Intel in 1993 when it introduced the Pentium and SL Enhanced 486 processors.[1] By using the CPUID …   Wikipedia

  • PDP-8 — A PDP 8 on display at the Smithsonian s National Museum of American History in Washington, D.C.. This example is from the first generation of PDP 8s, built with discrete transistors and later known as the Straight 8. The 12 bit PDP 8 was the… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”