如何在MASM控制台上进行输入/输出?

Mal*_*ist 3 assembly masm

我用谷歌搜索和谷歌搜索,我没有找到任何有用的东西.如何将输出发送到控制台,并通过程序集接受来自控制台的用户输入?

我正在使用MASM32

Phi*_*hiS 8

正如filofel所说,使用Win32 API.这是一个小小的世界示例:

.386
.MODEL flat, stdcall
 STD_OUTPUT_HANDLE EQU -11 
 GetStdHandle PROTO, nStdHandle: DWORD 
 WriteConsoleA PROTO, handle: DWORD, lpBuffer:PTR BYTE, nNumberOfBytesToWrite:DWORD, lpNumberOfBytesWritten:PTR DWORD, lpReserved:DWORD
 ExitProcess PROTO, dwExitCode: DWORD 

 .data
 consoleOutHandle dd ? 
 bytesWritten dd ? 
 message db "Hello World",13,10
 lmessage dd 13

 .code
 main PROC
  INVOKE GetStdHandle, STD_OUTPUT_HANDLE
  mov consoleOutHandle, eax 
  mov edx,offset message 
  pushad    
  mov eax, lmessage
  INVOKE WriteConsoleA, consoleOutHandle, edx, eax, offset bytesWritten, 0
  popad
  INVOKE ExitProcess,0 
 main ENDP
END main
Run Code Online (Sandbox Code Playgroud)

组装:

ml.exe helloworld.asm /link /subsystem:console /defaultlib:kernel32.lib /entry:main
Run Code Online (Sandbox Code Playgroud)

现在要捕获输入,您将使用API​​等函数进行类似的操作ReadConsoleInput.我把它作为锻炼留给你.