نمایش نتایج 1 تا 3 از 3

نام تاپیک: سوال از کد اسمبلی

  1. #1

    Exclamation سوال از کد اسمبلی

    سلام دوستان من یک کد اسمبلی برای پروژه ام دانلود کردم ولی نمی تونم در کل بفههم که این کد چه کار میکنه .اگر کمک کنید ممنون می شم.
        .386
    .model flat,stdcall
    option casemap:none

    WinMain proto :DWORD,:DWORD,:DWORD,:DWORD

    include \masm32\include\windows.inc
    include \masm32\include\user32.inc
    include \masm32\include\kernel32.inc
    include \masm32\include\gdi32.inc
    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib
    includelib \masm32\lib\gdi32.lib

    .data
    ClassName db "SimpleWinClass",0
    AppName db "Our First Window",0
    char WPARAM 20h

    .data?
    hInstance HINSTANCE ?
    CommandLine LPSTR ?

    .code
    start:
    invoke GetModuleHandle, NULL
    mov hInstance,eax
    invoke GetCommandLine
    mov CommandLine,eax
    invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT
    invoke ExitProcess,eax
    WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR, CmdShow:DWORD
    LOCAL wc:WNDCLASSEX
    LOCAL msg:MSG
    LOCAL hwnd:HWND
    mov wc.cbSize,SIZEOF WNDCLASSEX
    mov wc.style, CS_HREDRAW or CS_VREDRAW
    mov wc.lpfnWndProc, OFFSET WndProc
    mov wc.cbClsExtra,NULL
    mov wc.cbWndExtra,NULL
    push hInst
    pop wc.hInstance
    mov wc.hbrBackground,COLOR_WINDOW+1
    mov wc.lpszMenuName,NULL
    mov wc.lpszClassName,OFFSET ClassName
    invoke LoadIcon,NULL,IDI_APPLICATION
    mov wc.hIcon,eax
    mov wc.hIconSm,eax
    invoke LoadCursor,NULL,IDC_ARROW
    mov wc.hCursor,eax
    invoke RegisterClassEx, addr wc
    INVOKE CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,\
    WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\
    CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NUL L,\
    hInst,NULL
    mov hwnd,eax
    INVOKE ShowWindow, hwnd,SW_SHOWNORMAL
    INVOKE UpdateWindow, hwnd
    .WHILE TRUE
    INVOKE GetMessage, ADDR msg,NULL,0,0
    .BREAK .IF (!eax)
    INVOKE TranslateMessage, ADDR msg
    INVOKE DispatchMessage, ADDR msg
    .ENDW
    mov eax,msg.wParam
    ret
    WinMain endp
    WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
    LOCAL hdc:HDC
    LOCAL ps:PAINTSTRUCT

    .IF uMsg==WM_DESTROY
    invoke PostQuitMessage,NULL
    .ELSEIF uMsg==WM_CHAR
    push wParam
    pop char
    invoke InvalidateRect, hWnd,NULL,TRUE
    .ELSEIF uMsg==WM_PAINT
    invoke BeginPaint,hWnd, ADDR ps
    mov hdc,eax
    invoke TextOut,hdc,0,0,ADDR char,1
    invoke EndPaint,hWnd, ADDR ps
    .ELSE
    invoke DefWindowProc,hWnd,uMsg,wParam,lParam
    ret
    .ENDIF
    xor eax,eax
    ret
    WndProc endp
    end start


  2. #2
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1383
    محل زندگی
    تهران
    پست
    81

    نقل قول: سوال از کد اسمبلی

    یک winApp ساده است که سه پیغام رو اداره کرده یکی برای خروج WM_DESTROY و یکی برای ترسیم WM_PAINTو دیگری WM_CHAR برای فشردن کلید هایی که دارای کد اسکی هستند.
    در کل برنامه این کار را انجام می دهد:
    با فشاردادن یک کلید از صفحه کلید کارکتر معادل کد اسکی ان کلید را نمایش می دهد. همه را در سطر و ستون 0و0 نمایش می دهد بنابراین در هر لحظه فقط یک کاراکتر نمایش داده می شود.

  3. #3

    نقل قول: سوال از کد اسمبلی

    سلام!
    یه راه ساده هم هست!
    ببر اجراش کن ببین چیه میگه؟ خوب!!!

    فایل اجرایی ضمیمه میباشد!
    فایل های ضمیمه فایل های ضمیمه

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •