Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: Belial & Grimoire en 19 Junio 2012, 03:32 am



Título: para que sirve LEA y cual es la diferencia con MOV?
Publicado por: Belial & Grimoire en 19 Junio 2012, 03:32 am
hola

me podrian explicar para que funciona LEA y cual es la diferencia entre LEA y MOV

es que googlendo encontre un poco pero no entendi bien, y pues algo que encontre tambien fue la diferencia de lea y mov pero me quisiera saber si alguien tiene una explicacion mas amplia porfavor

salu2  ;D


Título: Re: para que sirve LEA y cual es la diferencia con MOV?
Publicado por: afdlkglfgfdgfhgf en 19 Junio 2012, 05:55 am
LEA mueve la direccion de memoria que apunta a un valor y MOV mueve el contenido,


Título: Re: para que sirve LEA y cual es la diferencia con MOV?
Publicado por: Flamer en 19 Junio 2012, 06:05 am
hola Belial & Grimoire soy flamer sera un honor ayudarte con lo poco que se bueno enpesemos con lo mas simple sera MOV y para el final LEA
Primero MOV mueve el valor de un registro a otro o asigna el valor a un registro ejemplo 1:
darle valor al registro EAX bueno MOV EAX,5 aqui a EAX le estamos dando el valor 5
5
ejemplo 2:
mover el valor de un registro a otro MOV EBX,EAX aqui estamos moviendo el valor de EAX a EBX lo cual los dos registros tendran el mismo o sea no se borra el valor movido de EBX.

y el final LEA=se usa general mente para mover una direccion de memoria a un registro y no te confundas no mueve el valor que contiene dicha direccion.
ejemplo 1:
mover una direccion de memoria a EAX seria asi LEA EAX,DWORD PTR DS:[12A84F]
ejemplo 2:
LEA EAX,DWORD PTR DS:[ECX+45] su poniendo que ECX=12F410 mas 45 igual a 12F455 que es lo que valdra EAX

bueno eso es lo poco que se y tengo entendido si estoy mal corrijanme, espero aberte ayudado

espero encontrarte por el subforo de ing. inversa

saludos flamer y fue un honor ayudar a la ganadora del concuso "hackeen mi server" que puso dimitri(ya te llego el vino)


Título: Re: para que sirve LEA y cual es la diferencia con MOV?
Publicado por: Belial & Grimoire en 19 Junio 2012, 07:30 am
jeje gracias a los 2 por responderme

mmm creo ahora entender porque cuando quise hacer un shell me funcionaron de las dos formas

Código
  1. [BITS 32]
  2.  
  3. call start
  4.  
  5. start:
  6.  
  7. mov eax, cd
  8. push eax
  9. mov eax, 76B4E5FDh
  10. call eax
  11. mov eax, 76B1214Fh
  12. call eax
  13.  
  14. cd:
  15. db 'cmd.exe', 0
  16.  

Código
  1. [BITS 32]
  2.  
  3. call start
  4.  
  5. start:
  6.  
  7. lea eax, [cd]
  8. push eax
  9. mov eax, 76B4E5FDh
  10. call eax
  11. mov eax, 76B1214Fh
  12. call eax
  13.  
  14. cd:
  15. db 'cmd.exe', 0
  16.  

 y pues nop, el vino no me llego, solo era para los que viven en España, asi que le deje la desicion a dimitrix sobre si se lo quedaba el o se lo daba al segundo lugar, no se que habra hecho, ya no pregunte, pero bueno

gracias

salu2