Hola que tal estan?
espero que muy bien que s elo merecen por aguantar un pesado como yo xD wneo a lo que voi, tengo este codigo:
.386
.model flat,stdcall
option casemap:none
include All.inc
.data
.code
BG:
MOV EAX,4
MOV EBX,4
ADD EAX,EBX
invoke MessageBox,NULL,EAX,NULL,MB_OK
invoke ExitProcess,0
end BG
No es mas que una prueba,el caso es que el resultado de esa suma queda almacenada en EAX,como puedo mostrar ese resultado en un MessageBox como si de un string se tratara?
y otra pregunta,como puedo saber la direccion de una instruccion?
Salu2
Tenes que transformarlo a cadena primero ... podes usar la API wsprintf (http://msdn.microsoft.com/en-us/library/ms647550(VS.85).aspx) si queres (pasandole como parametros un buffer, el formato "%d" y el numero).
¿Estas buscando offset bg?
NO,ofsset BG no busco pro ejemplo la direccion MOV EAX,4 o de cualquier otra instruccion,es posible eso?
Eternal he buscado en google sobre esa funcion la de wsprintf pero no me aclaro me puedes poner un ejemplo de uso porfavor si no es muco pedir?
¿Seguro que no?
Fijate que hace entonces esto:
mov ecx, offset BG
Ademas de la etiqueta podes usar esto para la instruccion actual:
mov ecx, $
Aca vamos, siendo el numero eax, en la sección de datos:
buff db 16 dup (0)
format db "%d", 0
invoke wsprintf, offset buff, offset format, eax
Woo muchas gracias no savia todo eso me as ayudado mmucho,gracias crack de verdad ;) y perdona por ser tan pesado
De nadas ::)
Oye pero teniendo la direccion de una instruccion despues puedo hacerle CALL a esa instruccion?
Perfectamente:
call ecx
Ok ya me lo imaginaba saludos Eternal idol ;)