Red de conocimiento informático - Conocimiento informático - Explicación de las instrucciones go en lenguaje ensamblador de Linux incorporado U-boot. ¿Qué significa el siguiente código? El problema está en el código. . . Te lo ruego y definitivamente lo aceptaré.

Explicación de las instrucciones go en lenguaje ensamblador de Linux incorporado U-boot. ¿Qué significa el siguiente código? El problema está en el código. . . Te lo ruego y definitivamente lo aceptaré.

Esto se utiliza para especificar el orden de almacenamiento de los segmentos del programa.

Un archivo binario incluye principalmente tres segmentos: texto, datos y bss, a saber, el segmento de programa, el segmento de datos globales y estáticos y el segmento de inicialización cero.

1. Alineación de cuatro bytes, es decir, cuando se almacena el programa, su ubicación se alinea con 4 bytes. Se pueden colocar direcciones como 0xxxx04,0xxxx0,0xxxx8,0xxxxc. 0xxxxx1,0xxxx2,0xxxx3,0xxxx5 no están permitidos.

2. El símbolo "/" es el separador de la carpeta cpu/sep4020/start.o (.text) significa que la carpeta cpu/sep4020/ se compilará en el archivo de destino start.o. Este objetivo El archivo debe colocarse en la sección de texto.

3.rodata; {*(.rodata)} significa que todos los segmentos de programa cuyos nombres de segmento terminan en .rodata se colocan en el segmento rodata es un tipo de segmento de datos y es una lectura. solo segmento de datos significado. El signo * es un comodín, que en inglés se llama comodín.

4 .=0x00000000; significa que la posición inicial del siguiente segmento .got es la dirección 0.

5..=.

.=xxxxx significa que la dirección de este bloque está configurada en xxxx, .=.

6. __u_boot_cmd_start=. Es decir, asigna el valor de esta variable a la dirección actualmente dispuesta.

7. __bss_start=. Tiene el mismo significado que la frase anterior __bss_start no tiene ningún significado especial. Cuando el símbolo del lenguaje C se convierte en ensamblador, se colocará un _ delante de él, lo que significa que esta variable, si se expresa en lenguaje C, es _bss_start, y en ensamblador, es __bss_start

Estos se utilizan para indicarle al programa compilador la forma en que está organizado el código.