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