¿Qué significa. Sección hacer?

A

arvind053

Guest
Tengo el siguiente fragmento de código en mi archivo de la Asamblea (. Asm):

. sección. restablecer 4,1,6 # Pon este código en ". init sección"

¿Puede alguien decirme qué significa esto?

Cuando compilo con este me sale el siguiente advertencia:

N vinculador de entrada para la sección de archivo de comandos. Restablecer.. restablecimiento será de entrada para la sección de salida. init de

Gracias

 
A. Directiva sección se utiliza para etiquetar los bits de código (a raíz de la Directiva upto la siguiente sección.) Con un nombre de sección.El enlazador recogerá todo el código en una sección especial llamada así, por lo que se concatena en una sola área de la memoria, y el enlazador se suele administrar un archivo de comandos, que le diga qué secciones de combinar las propiedades de cada sección (código, lectura sólo lectura y escritura, ,...), inicializado y donde / que el fin de ponerlos en el binario generado por el vinculador.Al compilar y enlazar en Windows / Linux / .., compilador genera el controlador de comandos de vinculador thr archivo automáticamente (o genera secciones correspondientes a los valores por defecto del enlazador), para que el enlazador produce lo que el código de inicio c espera.

En su caso, parece que el enlazador está haciendo lo que quiere (porque es poner la sección. Restablecer con la sección. Init).Si desea eliminar la advertencia, usted debe o cambiar el nombre de la sección en la directiva de responsabilidad. Init, o decirle al enlazador de combinar la sección. Restablecer con la sección. Init.La forma de hacerlo depende de su enlazador: necesita RTM.

Para que funcione razonablemente, si se obtiene el código en una sección que necesita para asegurarse de que cada parte ha marcado es la función completa con salida y regreso, porque el vinculador simplemente concatenar los bits de código etiquetado con un nombre así como en algunos arbitraria orden.Si bien esto estaría muy bien para los datos, no es un general, una estrategia exitosa para suponer que una secuencia al azar reunidas de pequeños trozos de código siempre trabajarán juntos correctamente.

Suponiendo que esto va a ser puesto en ROM, algo así como la sección. Init probablemente debería haber situado en el código donde quiera que su vector de reset del procesador es de configuración del hardware y, o bien iniciar el RTOS o saltar a la rutina de inicialización c luego a main ().

HTH
Barny

 
Hola barny451,
Digo, ¿puedes compartir tus conocimientos de programación o de la Asamblea nos señalan a algún lugar?Tuve que hacer frente a la Asamblea unas semanas atrás y que hizo girar mi cabeza.¿Puede decirme si hay un formato único de reunión en boga?(Siempre he pensado que las instrucciones de montaje fueron diferentes para diferentes CPU)?

 
Yo no tengo un indicador específico, pero una rápida para Google. Ensamblador lleva a la sección, por ejemplo:

http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixassem/alangref/csect.htm

que describe la directiva CSECT que aparece la misma. sección.Leer y aprender.

En la mayoría de los casos usted no tendrá que preocuparse de las secciones, poner todo en la sección por defecto al no especificar uno.Momentos en los que tienen que preocuparse son, posiblemente, por ejemplo, la combinación de la Asamblea, Wen con C / C , cuando se especifica el código de inicio que tiene que estar vinculada a una dirección en particular, al definir los datos que tiene que estar en direcciones específicas (por ejemplo, para inicializar los vectores de interrupción).

 

Welcome to EDABoard.com

Sponsor

Back
Top