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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  [Ayuda]MOVSD y MOVSW
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda]MOVSD y MOVSW  (Leído 5,078 veces)
blackray

Desconectado Desconectado

Mensajes: 14



Ver Perfil
[Ayuda]MOVSD y MOVSW
« en: 6 Septiembre 2009, 16:54 pm »

Hola =P la cuestion es que yo entiendo que copia de SI a DI, lo que no entiendo es la instruccion del flag de direccion como CLD, lei y dice... movimiento para adelante WTF?
 :-\ No entiendo muy bien eso, me podeis echar una mano porfavor?  ;D
Saludos!


En línea

Nada es imposible.
YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: [Ayuda]MOVSD y MOVSW
« Respuesta #1 en: 6 Septiembre 2009, 19:20 pm »

MOVSD lo que hace es mover un dword(4 bytes ) desde la posición quue apunta esi hacia la posión que apunta edi , movsw hace lo mismo solamente que en vez de un dword mueve un word  ;) Para que lo entienddas mejor te dejo un codigo :P
Código
  1. include 'win32ax.inc'
  2. .code
  3. start:
  4. mov esi,Hola ;Le pasamos el puntero de "Hola" a esi
  5. mov edi,Buffer ;Le pasamos el puntero de el buffer a edi
  6. movsd  ;Copiamos los 4 bytes
  7. invoke MessageBox,0,Buffer,0,0 ;Los imprimimos
  8. invoke ExitProcess,0 ;Salimos
  9. .data
  10. Buffer db 20 dup (0)
  11. Hola db 'Hola',0
  12. .end start          
  13.  


En línea



Yo le enseñe a Kayser a usar objetos en ASM
blackray

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: [Ayuda]MOVSD y MOVSW
« Respuesta #2 en: 6 Septiembre 2009, 19:39 pm »

Muchas gracias  :P
mmm y el CLD? tengo entendido que pone a 1 el flag de direccion y que esta relacionado con el movsX ._. en los codes comentados que veo solo dice... hacia adelante ._. mire sobre la instruccion pero solo dice para que sirve, no como se usa  :xD
Saludos!
En línea

Nada es imposible.
YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: [Ayuda]MOVSD y MOVSW
« Respuesta #3 en: 6 Septiembre 2009, 19:54 pm »

CLD

Borra la bandera de dirección ,asignándole un 0 . Las instrucciones de primitivas de cadena incrementan (e)si y (e)di de manera automatica

Formato de instrucción:
CLD
« Última modificación: 6 Septiembre 2009, 20:05 pm por YST » En línea



Yo le enseñe a Kayser a usar objetos en ASM
blackray

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: [Ayuda]MOVSD y MOVSW
« Respuesta #4 en: 6 Septiembre 2009, 20:28 pm »

Emm entiendo lo que hace pero no le veo uso ._. si es para hacer un bucle no seria mas facil el tipico loop o con condicionales? =/
Saludos :P
En línea

Nada es imposible.
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [Ayuda]MOVSD y MOVSW
« Respuesta #5 en: 7 Septiembre 2009, 10:24 am »

CLD pone el flag a 0, tambien existen STD que si pone el flag a 1 y entonces se decrementan las direcciones. Un uso muy util es por ejemplo cuando queres copiar memoria, va aumentando o decrementando ambas direcciones (fuente y destino) y usando un repXXX podes lograr la copia completa.

Un ejemplo tonto en MASM, depuralo y vas a ver como funciona (las copias tendran el valor de los originales):
Código
  1. .386
  2. .model flat, stdcall
  3.  
  4. .data
  5. w dd 14
  6. x dd 15
  7. y dd 16
  8. z dd 17
  9.  
  10. w1 dd 0
  11. x1 dd 0
  12. y1 dd 0
  13. z1 dd 0
  14.  
  15. .code
  16. main:
  17.  
  18. mov esi, offset w
  19. mov edi, offset w1
  20. mov ecx, 4
  21. rep movsd
  22.  
  23. ret
  24. end main

Lo mismo pero decrementando:
Código
  1. std
  2. mov esi, offset z
  3. mov edi, offset z1
  4. mov ecx, 4
  5. rep movsd
  6. cld ;siempre hay que restaurar este flag, por defecto es 0
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
blackray

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: [Ayuda]MOVSD y MOVSW
« Respuesta #6 en: 7 Septiembre 2009, 16:01 pm »

Muchas gracias a los dos, ya lo entiendo perfectamente  ;D

Saludos!
En línea

Nada es imposible.
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [Ayuda]MOVSD y MOVSW
« Respuesta #7 en: 7 Septiembre 2009, 16:25 pm »

De nadas  ::)
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

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