Eso, busqué referencias en google pero no me quedó claro
si me pudieran dar un ejemplo, sería mucho mejor
Saludos :D
PD:
CitarLODS BYTE PTR DS:[ESI]
PD2:
CitarSTOS BYTE PTR ES:[EDI]
lods / lodsb / lodsw /lodsd
Se encargan de copiar un byte, word o dword, de la dirección indicada por DS:ESI, al registro AL, AX o EAX, según lo que va a copiar indicado por el sufijo de la instrucción
stos / stosb / stosw / stosd
estás instrucciónes podría decirce que son las "inversas" de las anteriores, ya que colocan el contenido de AL, AX o EAX, según lo que va a copiar indicado por el sufijo de la instrucción, en la dirección indicado por ES:EDI.
Que mejor ejemplo de crear un programa usando ese mnemónico y mirandolo en el Olly como actua D=.
Nox.
Te falto un detalle importante.
lodsb y stosb incrementan esi y edi respectivamente (Si NO esta puesto DF, si DF esta puesot, decrementa esi y edi respectivamente)
muy comodo a la hora de mover cadenas si se esta haciendo un auto-keygen.
mov esi, cadena_original
mov edi, cadena_destino
mov ecx, tamano_cadena
label:
lodsb
stosb
loop label
por cierto und3r, lodsb y stosb no son opcodes. "AC" y "AA" son los opcodes.
stosb y lodsb son MNEMONICOS, o mejor aun INSTRUCCIONES del ensamblador.
Es lo que hace el ensamblador, convertir "stosb" en "AA"
saludos
exacto, me falto ese punto =B, aunque sí de mover cadenas se tratase puedes usar
rep movsx; movs / movsb /movsw / movsd
;siendo "x" el sufijo que indica el tamaño a moverse.
usando el registro ecx, para decirle el numero de veces a mover, bueno es cuestion de gustos. Aunque no se que tiene que ver con la su pregunta, se lo menciono porseacaso, jeje :P
EDITO: me olvidaba, esi y edi incrementen en este caso usando rep movsx si DF está activo, si no decrementa XD.
Nox.
Muchas gracias por las respuestas ;-)
Saludos