2011-11-18 22 views
6

Tengo un archivo que define las funciones IO básicas y quiero crear otro archivo que use este archivo.Cómo vincular dos archivos fuente de Nasm

¿Hay alguna forma de vincular estos dos archivos?

prints.asm:

os_return: 
    ;some code to return to os 
print_AnInt: 
    ;some code to output an int, including negatives - gets param from stack 
print_AChar: 
    ;some code to output a char - gets param from stack 

usingPrintTest.asm:

main: 
    push qword 'a' 
    call print_AChar ;gets this from prints.asm somehow (that's my question) 
    call os_return ;and this too.. 

Nota estos no son los archivos reales ... Son sólo utiliza para explicar mi problema :)

Gracias!

Respuesta

4

Seguro, solo tiene que utilizar el vinculador. Montar cada uno de los archivos:

nasm -o prints.o prints.asm 
nasm -o usingPrintTest.o usingPrintTest.asm 

entonces puede pasar de los objetos de salida a su enlazador. Algo así como:

gcc -o myProgramName prints.o usingPrintTest.o 

Usando gcc como el conductor enlazador puede resolver algunos negocios divertido con la vinculación de las bibliotecas del sistema operativo que necesita para su programa a ejecutar. Es posible que tenga que hacer algunas declaraciones en usingprintTest.asm para hacerle saber que print_Achar y os_return van a ser definidos en otros lugares - en nasm, va a utilizar la directiva extern ensamblador:

extern print_Achar 
extern os_return 
+0

Muchas gracias hombre. Cuando hicimos una búsqueda en Google intensa, obtuvimos la respuesta SECONDS antes de obtenerla: P – meltuhamy

Cuestiones relacionadas