3
A
回答
2
只需通过使用Win32 API:通过写STD_OUTPUT_HANDLE(从STD_INPUT_HANDLE阅读)。 See GetStdHandle() in MSDN作为出发点... 使用MASM HLL构造来帮助您(INVOKE是您的朋友,用于调用Win32函数并传递参数)。
7
正如filofel所说,使用Win32 API。这里有一个小的hello world例子:
.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
要装配:
ml.exe helloworld.asm /link /subsystem:console /defaultlib:kernel32.lib /entry:main
我们捕获输入,你会同样进行,使用API函数,如ReadConsoleInput
。我把这个作为练习留给你。
2
“控制台”在现代Windows世界中可能相当模糊。如果通过控制台程序,你确实是指DOS程序,你可以使用DOS INT 21 API,这比调用Win32要简单得多。我没有MASM,但这是一个简单的例子,如何阅读一个字符并写出一个字符。有关更多DOS功能,请参阅this。
MOV AH,1 ; code for "read a character"
INT 21H ; character gets put in AL
MOV AH,2 ; code for "write a character"
MOV DL,'A' ; ascii code goes in DL
INT 21H
0
下载,并链接到Irvine32库,他们会为你提供是非常人性化的输入和输出功能。
相关问题
- 1. 使用GUI进行控制台输入和输出java
- 2. Python控制台应用程序 - 输入行以上输出
- 3. Xcode 6.1控制台输入/输出
- 4. Asm控制台输入/输出
- 5. 捕捉控制台输入输出
- 6. 基本控制台输入和输出
- 7. Java控制台输出成为下一个控制台输入
- 8. C#:从控制台输出分离控制台输入
- 9. 在控制台中输入输入
- 10. 控制台输出
- 11. 输出控制台
- 12. 如何在控制台输出@user?
- 13. 用MASM输出寄存器到控制台
- 14. C++在控制台上更改输出
- 15. Unix:在控制台输出上的Grep
- 16. Cron作业输出在控制台上
- 17. 输入值在控制台
- 18. 在win32上没有使用MASM与程序组装的控制台输出
- 19. 如何记录屏幕/控制台/终端输入和输出
- 20. 如何从jtextArea或JEditorPane获取控制台输入和输出
- 21. 如何处理Eclipse控制台输入和输出(Java)?
- 22. 控制台输出到子进程
- 23. 如何在缓冲区控制台输出中输出?
- 24. 如何在Xcode输出控制台中显示C++输出
- 25. 如何输出从控制台读入的新行
- 26. 输出MySql表到控制台输出
- 27. 负数MASM输入和输出
- 28. 控制台输入直到。并输入
- 29. 从控制台输入java输入
- 30. 如何在iPhone上查看控制台上的输出
使用MASM32排除使用16位DOS API调用。 – 2010-04-28 05:05:58
如果您使用LINK16而不是LINK,我相信您可以从MASM32目标文件生成16位DOS程序。 – 2010-04-29 00:58:59