win32彙編控制台應用程式

來源:互聯網
上載者:User

.386
.model flat, stdcall
option casemap :none

include    /masm32/include/windows.inc
include     /masm32/include/kernel32.inc
includelib    /masm32/lib/kernel32.lib
include    /masm32/include/user32.inc
includelib    /masm32/lib/user32.lib
include     /masm32/include/masm32.inc
includelib    /masm32/lib/masm32.lib
.data?
hStdin         HANDLE ?
cRead        DWORD ?
hStdout        HANDLE ?
iLength        DWORD ?
cWritten    DWORD ?
szInputBuffer     db 256 dup(?)
szOutputBuffer     db 512 dup(?)

.data
szCaption     db     'Input!',0
szMessage     db 'Error!',0
szFormat    db    "%s%s", 0
szDisplay     db '您輸入的字串是:',0

.code
_WinMain     proc
    invoke     GetStdHandle,STD_INPUT_HANDLE
    .if        eax==INVALID_HANDLE_VALUE
            invoke     MessageBox,NULL,offset szMessage,offset szCaption,MB_OK
    .else
            mov     hStdin,eax
    .endif
   
    invoke     ReadConsole,hStdin,offset szInputBuffer,255,offset cRead,NULL
   
    .if        eax==NULL
        invoke     MessageBox,NULL,offset szMessage,offset szCaption,MB_OK
    .endif
   
    invoke wsprintf,offset szOutputBuffer,offset szFormat,offset szDisplay,offset szInputBuffer
   
    invoke     GetStdHandle,STD_OUTPUT_HANDLE
    .if        eax==INVALID_HANDLE_VALUE
            invoke     MessageBox,NULL,offset szMessage,offset szCaption,MB_OK
    .else
            mov     hStdout,eax
    .endif
    invoke     lstrlen,offset szOutputBuffer
    mov     iLength,eax
    invoke WriteConsole,hStdout,offset szOutputBuffer,iLength,offset cWritten,NULL
    ret
_WinMain     endp

start:
    call _WinMain
    invoke StdIn,NULL,NULL
    invoke ExitProcess,NULL
   
    end start

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.