Ensamblador - Problemas de interpretación...

 
Vista:

Problemas de interpretación...

Publicado por Kywocs (5 intervenciones) el 27/04/2001 07:23:08
Holas amigos,
tengo un problemilla, un amigo me pasó una función de C (Setjmp()) desensamblada, y no entiendo bien algunos simbolos como los porcentajes, o que son los numeros del tipo 0xC, pero bueno, les pongo unas lineas, aver si me aclaran un poco los signos "raros", o mas bien nuevos para mi.

mov %edi,0x8(%eax)
lea 0x4(%esp,1),%ecx
mov %ecx,0x10(%eax)

Entiendo la idea basica de la primera linea, donde se está moviendo un regitro a otro, pero que es "%edi", osea porqué el "%", o es solo un agregado del desensamblador y no le hago caso??.
Y la misma duda con las otras cosas "extra".

Muchas Gracias

KYWOCS ~Relax Your Senses~
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas de interpretación...

Publicado por Daryl Reebok (3 intervenciones) el 28/04/2001 04:09:42
El desensamblado está en formato AT&T, no en formato Intel. En formato AT&T (que es el que se emplea en la mayor parte de ensambladores para UNIX/Linux, con la notable excepción de NASM) el % indica registros, los operadores van al revés que en masm:
addl %eax,%ebx lo que hace es sumar %eax a %ebx, no como en masm, además es norma indicar el tamaño de los operadores aunque sea redundante (la "l" en add), y como puedes ver en tu propio listado la dirección indexada se expresa de manera diferente. Tranquilo ... mucha gente piensa que el formato AT&T es un auténtico desastre, pero nunca está de más entenderlo un poco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar