YASM - Procedimientos

Iniciado por sbc10, 6 Enero 2015, 22:09 PM

0 Miembros y 2 Visitantes están viendo este tema.

sbc10

hola!
:D

pregunta: se puede en YASM definir procedimientos como se hace en MASM?

asi:

mifuncion proc
.
.
.
mifuncion endp



_Enko

Siendo supuestamente un rewrite de nasm... por lo menos en nasm es:

proc    _nearproc

%$i     arg
%$j     arg
        mov     ax,[bp + %$i]
        mov     bx,[bp + %$j]
        add     ax,[bx]

endproc


Saludos.

sbc10

gracias por responder.

pero no funciona, al compilar da error:

"error: instruction expected after label"

y si:aunque es un reescrito de nasm

_Enko

Acabo de googlear rápido la documentacion de yasm... deja mucho que desear la cosa.

Es obligatorio que uses yasm? me da que con nasm vas a tener mejor resultados.

Si necesitas programar para linux, nasm y fasm te dan buenos resultados. Yo particularmente prefiero fasm, tiene buena documentacion y un monton de ejemplos en la red.

Saludos.

sbc10

#4
gracias de nuevo por tu respuesta!

pues empece a mirar yasm porque parece ser lo ultimo de lo ultimo no? una nueva version de nasm y mejorada.

pero si me dices que fasm o el mismo nasm (nunca los probe) van bien, pues los mirare.

estoy mirando ensamblador para x64 en windows.

por cierto si: la ayuda del yasm deja bastante que desear.

_Enko

#5
El tema en los ensambladores es que las actualizaciones salen para agregar las instrucciones de hardware nuevo, por ejemplo  sse3,sse4; reparar algunos bugs. Pero funcionalidades nuevas, muy rara vez. Es un ensamblador, no un compilador. :)

Se que hay una muy buena documentacion y ejemplos para masm32-64. Y como es orientado a windows no vas a tener problemas alli. (es de microsoft)

Yo particularmente prefiero fasm:
http://flatassembler.net/docs.php

Principalmente por la idea de:
SSSO: Same Source Same Output. Es decir, a diferencia del masm que puedes pasarle parametros al ensamblador para que genere codigo diferente. En fasm se hace dentro del mismo codigo fuente. Por eso que el mismo codigo fuente no requiere del programador pasarle parametros extra.

Y tambien en modo en que maneja direcciones de memoria y valores. (direccion de memoria, valor)
[variable] ---> valor
variable ----> direccion de memoria

A diferencia de masm que es:
variable---> valor
offset variable---> direccion de memoria.

Pero para gustos hay colores.

Saludos.

sbc10

gracias! me sirvieron tus respuestas y esta ultima aclaracion. :)