[Consulta] Prototipos de funciones para include.

Iniciado por The Swash, 3 Junio 2012, 02:29 AM

0 Miembros y 1 Visitante están viendo este tema.

The Swash

Hola,

Hoy vengo a molestaros con una pequeña consulta y es referido a MASM, y es la siguiente:
Yo tengo un número de funciones que hice y quisiera poder hacer un solo archivo que contenga esas funciones para posteriormente incluirlo en mis otros proyectos. Mi duda recae en que mis funciones van así:

Código (asm) [Seleccionar]
proc MyFunc1, Param..

end proc


Pero no he logrado que funcione o no al menos con un include MyProcs.asm.
Creo que debo declarar de alguna forma las funciones en cabecera o algo, si alguien sabe agradecería me deis una pequeña manita.

Un saludo,
Iván Portilla.

_Enko

#1
Eso se parece más a la sintaxis de fasm que masm.

En masm creo que es asi:

myFunc1 PROC Param1: DWORD, Param2: Dword
   ;............
   ret
myFunc1  ENDP


Tambien no se si es importante, pero por ahí conviene meterlo en un archivo ".inc".

Y luego, creo que el include lo deberás hacer en el segmento .code
Saludos.

Иōҳ

En un archivo *.inc declaro los prototipos (si deseas en el principal)

Ejemplo:
xChangeValue PROTO :WORD, :BYTE
TopXY PROTO   :DWORD,:DWORD

Para qué hacer esto?
Para poder usar la directiva invoke, solo de esa manera puedo usar

invoke TopXY dwParam1, dwParam2

En un *.asm aparte del principal puedes hacer esto
.data
[...]
.code
TopXY proc wDim:DWORD, sDim:DWORD

    shr sDim, 1      ; divide screen dimension by 2
    shr wDim, 1      ; divide window dimension by 2
    mov eax, wDim    ; copy window dimension into eax
    sub sDim, eax    ; sub half win dimension from half screen dimension

    return sDim

TopXY endp

Luego en un el *.inc principal al final lo puedes incluir:

;#### Inserted modules ####

        include xtra.asm
   include SplashScreen.asm
   include ChanceCell.asm

y listo en el main, lo puedes llamar normalmente sin problemas

Nox.
Eres adicto a la Ing. Inversa? -> www.noxsoft.net

The Swash

Hola,

@_Enko muchas gracias y tienes razón, la sintaxis que utilicé es correspondiente a FASM. En realidad llevaba mucho sin utilizar MASM y me he confundido de manera enorme.

@Nox muchas gracias todo me ha quedado claro y funcionando.

Un saludo a ambos,
Iván Portilla.