Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: .:UND3R:. en 2 Junio 2012, 08:09 am



Título: Tomar ASCII y convertirlo
Publicado por: .:UND3R:. en 2 Junio 2012, 08:09 am
Hola a todos, tengo el siguiente problema. tengo el siguiente número ASCII:

31 32 33 34 35 36 37

cómo podría hacer para que quedara 1234567 ?

ya que con XOR 30 me da como resultado 01020304050607

Saludos


Título: Re: Tomar ASCII y convertirlo
Publicado por: x64core en 2 Junio 2012, 10:27 am
que paso con la logica  :D
bueno no sé si el 31 32 33 es una cadena porque decis que es ASCII... entonces debe ser una cadena...
o entonces son valores hexadecimales... pero como decis que con xor 30 da resultado 01? entonces son valores hexadecimales no?


hice esto con los primeros dos numero, hay que sacar el nibble del valor, hacelo en un bucle para que sea más facil:

Código:
	xor 	eax,eax
xor edx,edx

mov eax,31h
xor eax,30h

mov edx,32h
xor edx,30h

shl eax,4h
or eax,edx
// en eax = 12

pero si es una cadena entonces son dos bytes por cada valor solo sacas el ultimo byte de cada valor y lo guardas en otro lugar


Título: Re: Tomar ASCII y convertirlo
Publicado por: .:UND3R:. en 2 Junio 2012, 17:50 pm
Perfecto era lo que necesitaba, bueno tantas instrucciones que aveces uno no se le ocurre jeje, saludos


Título: Re: Tomar ASCII y convertirlo
Publicado por: _Enko en 2 Junio 2012, 23:19 pm
Código:
str1 db 0x31, 0x32, 0x33, 0
str2 db "123",0
str1 es lo mismo que str2... exactamente iguales.

Si de 0x31 quieres obtener 0x1, simplemente le restas 0x30 no?