JMP (instrucción x86)

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Enseñanza de salto incondicional en el lenguaje de montaje x86

En el lenguaje ensamblador x86, la instrucción JMP realiza un salto incondicional. Tal instrucción transfiere el flujo de ejecución cambiando el contador del programa. Hay varios códigos de operación diferentes que realizan un salto; dependiendo de si el procesador está en modo real o en modo protegido, y si se usa una instrucción de anulación, las instrucciones pueden tomar punteros de 16 bits, 32 bits o segmento: desplazamiento.

Hay muchas formas diferentes de saltos: saltos relativos, condicionales, absolutos y de registro indirecto.

Los siguientes ejemplos ilustran:

  1. un salto relativo con un puntero de 16 bits;
  2. un salto largo (inter-segment), un salto relativo con un puntero de 32 bits;
  3. y un salto absoluto indirecto con el registro EAX.

(Tenga en cuenta que, aunque el primer y el segundo salto son relativos, normalmente se muestra la dirección de destino en lugar del desplazamiento relativo codificado en el código de operación).

Ejemplo uno: Cargue IP con el nuevo valor 0x89AB, luego cargue CS con 0xACDC e IP con 0x5578.

JMP 0x89ABJMP 0xACDC:0x5578

Ejemplo dos: Cargue EIP con el valor 0x56789AB1, solo en modo protegido o modo irreal.

JMP 0x56789AB1

Ejemplo tres: Saltar al valor almacenado en el registro EAX, solo en modo protegido.

JMP EAX

Contenido relacionado

Solicitud de comentarios

Una Solicitud de comentarios es una publicación de una serie de los principales organismos de desarrollo técnico y establecimiento de estándares para...

Búsqueda de la gloria

Quest for Glory es una serie de videojuegos híbridos de aventuras y juegos de rol, que fueron diseñados por Corey y Lori Ann Cole. La serie se creó en...

Depósito de claves

Custodia de claves es un acuerdo en el que las claves necesarias para descifrar datos cifrados se mantienen en custodia. para que, en determinadas...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save