pues eso, como puedo ir adicionando valores me explico
tengo 3 valores
A B y C
como puedo hacer para que una variable vaya adicionando esos 3 valores
VAR AUX
que AUX sea A luego AB y luego ABC
No sé si se entienda bien mi duda jeje
Saludos y gracias
Supongo que sería concatenar los valores, o me equivoco?
Operador &: Utilizado para concatenar texto o símbolos. Es necesario para lograr que el ensamblador sustituya un parámetro dentro de una cadena de caracteres o como parte de un símbolo:
SALUDO MACRO c
MOV AL,"&c"
etiqueta&c: CALL imprimir
ENDM
Al ejecutar SALUDO A se producirá la siguiente expansión:
MOV AL,"A"
etiquetaA: CALL imprimir
Si no se hubiera colocado el & se hubiera expandido como,
MOV AL,"c"
Depende del tamaño del tipo de dato que quieras mover.
Tengo una var Buffer de tipo DWORD.
Y quiero moverle un WORD, BYTE, BYTE. En Ese orden.
Siendo que:
WORD = 1234h
BYTE = 56h
BYTE = 78h
Y deseo obtener: EAX = 12345678h.
xor eax, eax; está demás
mov eax, 1234h ; EAX = 00001234h
shl eax, 16; EAX = 12340000h
mov ah, 56h; EAX = 12345600h
mov al, 78h; EAX = 12345678h
mov [Buffer], eax
Es un ejemplo para que entiendas cómo puedes almancenar y ordenarlas de la forma que quieras, NO es un ejemplo de como mover constantes XD, que para eso el código de arriba no es para nada eficiente, jeje.
Nox.
Muchas gracias nox, de todas formas encontré otra forma y es utilizar ALLOC creo un address en memoria virtual ahí introdujo los datos y voy incrementando en uno el address y moviendo ahí los datos quedando todo junto, jeje luego terminado el script lo quito con FREE, lo utilicé para KEYGEN de crackme edu que lo adjunté en el tutorial
Saludos
Cita de: .:UND3R:. en 21 Octubre 2011, 02:34 AM
Muchas gracias nox, de todas formas encontré otra forma y es utilizar ALLOC creo un address en memoria virtual ahí introdujo los datos y voy incrementando en uno el address y moviendo ahí los datos quedando todo junto, jeje luego terminado el script lo quito con FREE, lo utilicé para KEYGEN de crackme edu que lo adjunté en el tutorial
Saludos
Claro si no me equivoco esa macro también está disponible en masm, aunque para el lenguaje yo haría un..
Buffer db 225 dup (?)
xor esi, esi
lea ebx, Buffer
mov byte ptr [ebx + esi * 1], 10h
inc esi
mov byte ptr [ebx + esi * 1] 20h
;[...]
Siendo EBX: La Base Address, ESI: El índice, "* 1": la escala.
o algo más facil.
xor esi, esi
mov byte ptr Buffer:[esi * 1], 10h
inc esi
mov byte ptr Buffer:[esi * 1] 20h
;[...]
Son cosas que se me olvidó mencionar, y te lo dejo porseacaso.
En fin..
Nox.