Red de conocimiento informático - Programación de la red - ¿Qué significa este código? ¿Lenguaje ensamblador 8086?

¿Qué significa este código? ¿Lenguaje ensamblador 8086?

Este es el código del sector de arranque del kernel, que es diferente de los programas normales (aquí solo genera hola mundo).

Escrito en lenguaje nasm

1. org 0x7c00 Debido a que la computadora colocará esta sección en 0x7c 00, el desplazamiento debe declararse en este momento (cs=0x7c00).

A continuación, configure SS, CS y DS en 0x7c00 para calcular los datos y el desplazamiento de la pila.

2.call apuntará la ip a la entrada de la función, que es una llamada de función típica.

$ representa la dirección de esta instrucción, jmp $ representa el salto a esta dirección (es decir, bucle infinito).

3. Dentro de la función

La interrupción Int 0x10 representa la salida y estos movimientos proporcionan parámetros para la interrupción.

Consulte Google para conocer los parámetros de registro específicos.

4 veces significa repetición, es decir, repetir varios ceros (510-($-$)).

$$ representa la dirección de esta sección, lo que significa extender el tamaño del programa a 512 bytes.

5.0xaa55 se refiere a la marca del sector de arranque, es decir, cuando la computadora encuentra 0xaa55 en 510 bytes, se considera un sector de arranque.