Título: cast en asm Publicado por: rmdma() en 16 Febrero 2012, 11:14 am como puedo hacer para conertir un DWORD en un BYTE ?
Código
lo que quiero es convertir la variable resultado en un BYTE para poder pasarsela como parametro a messageboxa, aer es sin mas estoy aprendiendo asm Título: Re: cast en asm Publicado por: Eternal Idol en 16 Febrero 2012, 12:50 pm MessageBox no recibe como parametro un byte sino un puntero a byte, es decir una direccion de memoria donde haya una cadena de caracteres terminada en 0. En este ejemplo especifico lo que tenes que hacer no es pasar un byte con el 7 (que lo harias muy facilmente moviendo resultado a eax, en al tenes el primer byte aunque los parametros son todos DWORDs en pila, ojo) sino la cadena que incluye un '7' (como caracter, codigo ASCII 55) y un 0 terminador.
Para que te des una idea: Código
Título: Re: cast en asm Publicado por: _Enko en 16 Febrero 2012, 18:01 pm Hola, me parece que tienes un error aqui:
Citar add ebx,[resultado] es al reves.Código: add [resultado], ebx Luego, resultado es un dword. MessageBox puede imprimir cadenas. Para eso tendrias que convertir de DWORD a STRING de alguna u otra manera. Una opcion facil, es usar la api de windows, la funcion wsprintf. http://msdn.microsoft.com/en-us/library/windows/desktop/ms647550(v=vs.85).aspx (se parece al printf de c) Acordate que esta funcion no es STDCALL, despues de hacer el call, tienes que limpiar la pila de los parametros que hiciste push. Código
Saludos. |