assembly - smart - solidity español
¿Cómo escribir en la consola en fasm? (3)
Soy excepcionalmente nuevo en el montaje. Solo lo recogí ayer y miré muchos ejemplos y todavía no puedo entender cómo escribir en la consola. Siempre obtengo un error cuando parece replicarlo a mi manera.
La forma más fácil es usar las funciones C. En su uso más simple, printf()
toma una cadena como parámetro y la escribe en la salida estándar.
Este código debería funcionar:
format PE console
entry start
include ''win32a.inc''
section ''.text'' code executable
start:
push hello
call [printf]
pop ecx
push 0
call [ExitProcess]
section ''.rdata'' data readable
hello db ''Hello world!'', 10, 0
section ''.idata'' data readable import
library kernel32, ''kernel32.dll'', /
msvcrt, ''msvcrt.dll''
import kernel32, ExitProcess, ''ExitProcess''
import msvcrt, printf, ''printf''
Use WriteConsole .
include ''win32wxp.inc''
.code
start:
invoke AllocConsole
invoke WriteConsole,<invoke GetStdHandle,STD_OUTPUT_HANDLE>,tex,12,dummy,0
invoke Sleep,-1
.end start
.data
tex TCHAR ''Hello World!''
dummy rd 1
Parece que esencialmente estás intentando escribir un programa hello world. Eche un vistazo a las respuestas a esta pregunta y compárela con su código. Esto debería llevarte más lejos.