Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: zhengxi en 9 Noviembre 2014, 19:54 pm



Título: NOPs en código ASM compilado con TASM32
Publicado por: zhengxi en 9 Noviembre 2014, 19:54 pm
hola a todos.

pues resulta que cuando compilo un fuente ASM y me genera el EXE, luego cuando paso el EXE a un debugger, veo que el TASM32/TLINK32 entre algunas instrucciones me ha metido NOPs.

NOPs que yo no escribí en mi código ASM.

¿Con otros compiladores como MASM32 etcs os pasa esto mismo?

Dato: uso TASM32 (año 1996) / TLINK32 (año 1998). No tengo más modernos.



se me olvidaba: nunca usé MASM32 ni otros ensambladores.


Título: Re: NOPs en código ASM compilado con TASM32
Publicado por: Eternal Idol en 9 Noviembre 2014, 20:16 pm
No; MASM32 es gratis: http://www.masm32.com/


Título: Re: NOPs en código ASM compilado con TASM32
Publicado por: zhengxi en 9 Noviembre 2014, 20:21 pm
Sí, sí.

si no digo que MASM32 sea de pago.

sólo pregunto si a alguien le ha pasado lo mismo con otros ensambladores que no sean TASM32: lo de que te llena tu código con NOPs en según qué partes de tu código, sin tú haberlos puesto en tu fuente ASM.


Título: Re: NOPs en código ASM compilado con TASM32
Publicado por: Eternal Idol en 9 Noviembre 2014, 21:03 pm
No.


Título: Re: NOPs en código ASM compilado con TASM32
Publicado por: zhengxi en 9 Noviembre 2014, 21:06 pm
Ok.


Título: Re: NOPs en código ASM compilado con TASM32
Publicado por: karmany en 9 Noviembre 2014, 22:01 pm
Es extraño, a mí con MASM32 no me pasa.
Puedes poner unas líneas de tu código y ensamblado para ver dónde ha puesto los NOP's.

Es raro...


Título: Re: NOPs en código ASM compilado con TASM32
Publicado por: zhengxi en 9 Noviembre 2014, 22:28 pm
Gracias por vuestras respuestas.

Pues mirando por internet, acabo de dar con una solución, que no sé si servirá para todos los casos, pero sí para al menos el ejemplo que tenía.

resulta que hay que poner en el TASM32 el parámetro /mX donde X sería un número.
o sea por ejemplo: /m5 y así el TASM32 hace 5 pases a la hora de ensamblar el ASM.
y con esos 5 pases ya no salen luego los NOPs.  :o

o sea mirad:

yo tenía este código en el ASM, por ejemplo:

push eax
inc    eax
jz     salto
mov  ebx, 12h
salto:sub  ecx, ebx


pues el EXE me salía:

push eax
inc    eax
jz     salto
nop
nop
nop
nop
mov  ebx, 12h
salto:sub  ecx, ebx


y como os digo, poniendo ese parámetro /mX donde X es un número de pases, pues el TASM32 ahora ya no mete esos NOPs. Veremos a ver si es así para todos los casos o sólo para este.

gracias a todos por vuestras respuestas.


Título: Re: NOPs en código ASM compilado con TASM32
Publicado por: Eternal Idol en 9 Noviembre 2014, 22:51 pm
De nada, problemas de herramientas del milenio pasado.


Título: Re: NOPs en código ASM compilado con TASM32
Publicado por: _Enko en 10 Noviembre 2014, 14:46 pm
Pues mas que sufrir con tasm32 de BORKAKA te sugiero pasarte a masm32, fasm, nasm.  Cualquiera de esos tres tiene buena referencia :)

La unica cosa que se me ocurre en el que un ensamblador puede agregar NOPs de por si mismo, es cuando se utiliza alguna instruccion de preprocesador como ALIGN.

Saludos.


Título: Re: NOPs en código ASM compilado con TASM32
Publicado por: zhengxi en 10 Noviembre 2014, 19:37 pm
gracias _Enko.