¿Cómo utilizar el comando jmp short...? popular.
Cuando el compilador aquí procese esta declaración, traducirá jmp short al código de máquina EB y traducirá la siguiente etiqueta S a números. ¿Qué tan grande es este número? El corto anterior se interpreta como 2 bytes, y el corto aquí limita el rango de este número, es decir, entre -128 ~ +127.
Aquí comenzamos a explicar el valor de este número. Generalmente, las personas con un poco de conocimiento en ensamblaje pensarán que este número es la dirección de destino, pero no lo es (simplemente escriba un ejemplo y depurelo usted mismo, no hay una dirección de destino después del código de máquina EB). El número aquí es en realidad la distancia entre la dirección de destino y el jmp actual:
Por ejemplo:
La dirección de desplazamiento actual de jmp short s es 0003.
s: La dirección de la etiqueta es 0008.
Jmp short se traduce al código máquina EB, ocupando un byte.
El símbolo S se traduce en un número y también ocupa un byte (esta instrucción * * * ocupa dos bytes 0003 y 0004).
Por lo tanto, la distancia entre la instrucción jmp actual y la etiqueta S está separada por 3 bytes (0005, 0006, 0007).
Entonces el compilador agregará la distancia 3H entre la dirección de destino y el jmp actual después de EB.
Esta instrucción no permitirá que la CPU modifique el segmento cs, por lo que esta instrucción es una instrucción de salto dentro del segmento. De hecho, cuando la CPU detecta EB, saltará n bytes hacia adelante o hacia atrás mientras mantiene el segmento CS sin cambios. n depende del número después de EB. Si el número es positivo saltará hacia adelante, si es negativo saltará hacia atrás. Tenga cuidado de no saltar fuera del rango de números con signo de 8 bits cuando lo utilice.