elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  leave y movl
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: leave y movl  (Leído 4,904 veces)
@synthesize
Wiki

Desconectado Desconectado

Mensajes: 640


Another Brick in the Wall


Ver Perfil WWW
leave y movl
« en: 2 Julio 2010, 00:28 am »

Estoy empezando a depurar programas con GDB, y hacienod disas main me he encontrado con 2 opcodes que no cononzco. He bsucado por google, pero no he sacado nada en claro

SOn: leave y movl.

Movl me imagino que es algo de mover, por que si conozco Mov, peor no sé que pinta la L ahí.

Sobre leave, decir que me aparece dentro de otra función que no es main.

Código:

Código:
serch@serch-server:~/Escritorio$ gdb -q a.out

Leyendo símbolos desde /home/serch/Escritorio/a.out...(no se encontraron símbolos de depuración)hecho.

(gdb) run

Starting program: /home/serch/Escritorio/a.out

Hi ASM!



Program exited normally.

(gdb) disas main

Dump of assembler code for function main:

   0x08048414 <+0>: push   %ebp

   0x08048415 <+1>: mov    %esp,%ebp

   0x08048417 <+3>: and    $0xfffffff0,%esp

   0x0804841a <+6>: call   0x8048428 <proc>

   0x0804841f <+11>: mov    $0x0,%eax

   0x08048424 <+16>: mov    %ebp,%esp

   0x08048426 <+18>: pop    %ebp

   0x08048427 <+19>: ret   

End of assembler dump.

(gdb) disas proc

Dump of assembler code for function proc:

   0x08048428 <+0>: push   %ebp

   0x08048429 <+1>: mov    %esp,%ebp

   0x0804842b <+3>: sub    $0x18,%esp

   0x0804842e <+6>: mov    0x804a020,%eax

   0x08048433 <+11>: mov    %eax,%edx

   0x08048435 <+13>: mov    $0x8048520,%eax

   0x0804843a <+18>: mov    %edx,0xc(%esp)

   0x0804843e <+22>: movl   $0x8,0x8(%esp)

   0x08048446 <+30>: movl   $0x1,0x4(%esp)

   0x0804844e <+38>: mov    %eax,(%esp)

   0x08048451 <+41>: call   0x8048344 <fwrite@plt>

   0x08048456 <+46>: leave 

   0x08048457 <+47>: ret   

End of assembler dump.

(gdb)


En línea

bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
Re: leave y movl
« Respuesta #1 en: 2 Julio 2010, 00:43 am »

http://asm.sourceforge.net/articles/linasm.html#Syntax -> para el movl

leave = mov esp, ebp
            pop ebp




En línea

@synthesize
Wiki

Desconectado Desconectado

Mensajes: 640


Another Brick in the Wall


Ver Perfil WWW
Re: leave y movl
« Respuesta #2 en: 3 Julio 2010, 15:14 pm »

http://asm.sourceforge.net/articles/linasm.html#Syntax -> para el movl

leave = mov esp, ebp
            pop ebp



Gracias por responder  :)
En línea

nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: leave y movl
« Respuesta #3 en: 6 Julio 2010, 15:54 pm »

Movl me imagino que es algo de mover, por que si conozco Mov, peor no sé que pinta la L ahí.

Es específica en los ensambladores con sintaxis AT&T. El l es un sufijo de tamaño que te dice que está trabajando con dwords.
Para cambiar el tamaño, hay que cambiar el sufijo...
b = byte
w = word
l = dword
q = qword

Salu10.
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: leave y movl
« Respuesta #4 en: 6 Julio 2010, 16:00 pm »

Movl me imagino que es algo de mover, por que si conozco Mov, peor no sé que pinta la L ahí.

Es específica en los ensambladores con sintaxis AT&T. El l es un sufijo de tamaño que te dice que está trabajando con dwords.
Para cambiar el tamaño, hay que cambiar el sufijo...
b = byte
w = word
l = dword
q = qword

Salu10.
Tenia entendido que AT&T y Intel eran los mismos, y sin embargo en Intel creo que hay otros xDD

Saludos
En línea

nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: leave y movl
« Respuesta #5 en: 6 Julio 2010, 16:18 pm »

Tenia entendido que AT&T y Intel eran los mismos, y sin embargo en Intel creo que hay otros xDD

Citar
Parameter Size    

AT&T: Mnemonics are suffixed with a letter indicating the size of the operands (e.g., "q" for qword, "l" for dword, "w" for word, and "b" for byte)   

Intel: Derived from the name of the register that is used (e.g., eax, ax, al)

Fuente: Wikipedia

Salu10.
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: leave y movl
« Respuesta #6 en: 6 Julio 2010, 16:30 pm »

Tenia entendido que AT&T y Intel eran los mismos, y sin embargo en Intel creo que hay otros xDD

Citar
Parameter Size    

AT&T: Mnemonics are suffixed with a letter indicating the size of the operands (e.g., "q" for qword, "l" for dword, "w" for word, and "b" for byte)   

Intel: Derived from the name of the register that is used (e.g., eax, ax, al)

Fuente: Wikipedia

Salu10.
Grax por la info ;D

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines