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. Xcode 6.1控制檯輸入/輸出
- 3. 捕捉控制檯輸入輸出
- 4. 基本控制檯輸入和輸出
- 5. 在控制檯中輸入輸入
- 6. 控制檯輸出
- 7. 如何在控制檯輸出@user?
- 8. 在win32上沒有使用MASM與程序組裝的控制檯輸出
- 9. C++在控制檯上更改輸出
- 10. Unix:在控制檯輸出上的Grep
- 11. 輸入值在控制檯
- 12. 如何從jtextArea或JEditorPane獲取控制檯輸入和輸出
- 13. 如何在緩衝區控制檯輸出中輸出?
- 14. 負數MASM輸入和輸出
- 15. 如何在iPhone上查看控制檯上的輸出
- 16. 如何保持控制檯輸出固定在控制檯的最後一行?
- 17. 如何編輯控制檯輸出
- 18. 如何輸出LogCat到控制檯?
- 19. 如何讀取Xcode控制檯輸出?
- 20. 如何輸出到iPhone的控制檯?
- 21. 如何傳輸控制臺上顯示的輸出並進行格式化以使其顯示在網頁上?
- 22. 如何從控制檯輸入數字
- 23. 顯示在多個控制檯上的進程的輸出
- 24. 控制檯上沒有輸出
- 25. 控制檯上的TestNg輸出
- 26. 在Windows中使用C++進行顏色控制檯輸出
- 27. 在VS中捕獲控制檯輸出以進行調試?
- 28. 控制檯輸出格式
- 29. SharePoint控制檯輸出
- 30. Symfony控制檯輸出
使用MASM32排除使用16位DOS API調用。 – 2010-04-28 05:05:58
如果您使用LINK16而不是LINK,我相信您可以從MASM32目標文件生成16位DOS程序。 – 2010-04-29 00:58:59