dick4225 发表于 2014-4-28 13:52:00

为什么这个程序编译链接后动不了,按不了,关闭程序要在任务管理器那关闭?

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

dick4225 发表于 2014-4-28 13:52:56

上面发错了;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                .386
                .model flat,stdcall
                option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;include定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include                windows.inc
include                user32.inc
includelib        user32.lib
include                kernel32.inc
includelib        kernel32.lib
include                gdi32.inc
includelib        gdi32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                .data?
hModuleHandle        dd        ?
hWinMain                dd        ?
                .const
szClassName                db        'myclass',0
szCaptionMain        db        'first',0
szText                        db        'Welcome to fishc.com!',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                .code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;窗口过程
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ProcWinMain        proc       hWnd,uMsg,wParam,lParam
                pushad
                invoke        DefWindowProc        ,hWnd,uMsg,wParam,lParam
                popad
                ret
_ProcWinMain        endp



;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;建立窗口
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_WinMain                proc       
               
                local        @stWndClass:WNDCLASSEX
                local        @stMsg:MSG
                pushad
;********************************************************************
;获取进程句柄
;********************************************************************
                invoke        GetModuleHandle,NULL
                mov                hModuleHandle,eax
                invoke        RtlZeroMemory,addr        @stWndClass,sizeof @stWndClass
;********************************************************************
;注册窗口类
;********************************************************************
                invoke        LoadCursor,0,IDC_ARROW
                mov                @stWndClass.hCursor,eax
                push        hModuleHandle
                pop                @stWndClass.hInstance
                mov                @stWndClass.cbSize,sizeof WNDCLASSEX
                mov                @stWndClass.style,CS_HREDRAW or CS_VREDRAW
                mov                @stWndClass.lpfnWndProc,offset _ProcWinMain
                mov                @stWndClass.hbrBackground,COLOR_WINDOW + 1
                mov                @stWndClass.lpszClassName,offset szClassName
                invoke        RegisterClassEx,addr @stWndClass
;********************************************************************
;建立并显示窗口
;********************************************************************
                invoke        CreateWindowEx,WS_EX_CLIENTEDGE,offset szClassName,offset szCaptionMain,WS_OVERLAPPEDWINDOW,100,100,600,400,NULL,NULL,hModuleHandle,NULL
                               
                mov                hWinMain,eax
                invoke        ShowWindow,hWinMain,SW_SHOWNORMAL
                invoke        UpdateWindow,hWinMain
;********************************************************************               
                .while        TRUE
                        invoke        GetMessage,addr @stMsg,NULL,0,0
                .break        .if        eax == 0
                        invoke        TranslateMessage,addr @stMsg
                        invoke        DispatchMessage,addr @stMsg
                .endw
                popad
                ret
_WinMain                endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>       
start:
                call        _WinMain
                invoke        ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                end start

       
       
       

传说。 发表于 2014-4-29 20:30:58

:shock:貌似很吊的样子哦。

dick4225 发表于 2014-4-29 21:00:50

我知道为什么了,因为我用了pushad和popad,没有了返回值

dick4225 发表于 2014-4-29 21:01:36

因为用了pushad和popad,没有了返回的值

58223495 发表于 2014-5-8 13:08:50

这是汇编???看得我头晕:dizzy::dizzy::dizzy::dizzy::dizzy::dizzy::dizzy::dizzy::dizzy::dizzy:

阔怀 发表于 2015-8-8 10:46:02

:big
页: [1]
查看完整版本: 为什么这个程序编译链接后动不了,按不了,关闭程序要在任务管理器那关闭?