Hola, estoy estudiando para una asignatura el ensamblador de windows. Cuando se trata de ensamblado en línea no hay problema, pero cuando trato hacer un fichero exclusivamente en ensamblador, el vinculador no me reconoce los símbolos y eso que mi profesor nos dijo que el VS2005 reconocía los .asm automáticamente...
Tengo estos dos archivos en un proyecto de consola vacío:
main.c escribió:void main (void)
{
prueba();
}
prueba.asm escribió:.586
.MODEL FLAT
OPTION CASEMAP:NONE
.CODE
_prueba PROC
push ebp
mov ebp, esp
;-------------------------
;-------------------------
mov esp, ebp
pop ebp
ret
_prueba ENDP
END
Y cuando lo compilo...
...
.\main.c(3) : warning C4013: 'prueba' sin definir; se supone que extern devuelve como resultado int
Vinculando...
main.obj : error LNK2019: símbolo externo _prueba sin resolver al que se hace referencia en la función _main
...
A ver si alguien que sepa me puede echar una mano...
Solución:
He estado investigando un poco y hay que especificarle al entorno las herramientas con la que debe compilar los .asm:
Botón derecho del ratón sobre el .asm > Propiedades > Propiedades de configuración > Paso de generación personalizada:
Línea de comandos: ml.exe /Zi /Zd /Cp /c /coff "$(InputPath)"
Descripción: Ensamblando "$(InputPath)"
Resultado: "$(InputName).obj"
Por si alguien fuera a preguntar lo mismo...
SAlu2