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

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

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    44

    تفاوت بین اسمبلی تحت ویندوز و تحت داس

    آیا بین اسمبلی تحت ویندوز و تحت داس تفا وت وجود دارد ؟و اگر وجود دارد چه کتاب یا منبعی
    برای یاد کیری تحت ویندز سراغ دارید.

  2. #2

    بله.

    بله بسیار تفاوت وجود دارد . البته اگر مبحث Flat Memory و چند سخنی که در این فورم داشتم بیشتر تفاوت را جواهی دید. ایجا 1 مثال برایت می آورم.

    .386
    .model flat,stdcall
    option casemap:none
    include \masm32\include\windows.inc
    include \masm32\include\user32.inc
    include \masm32\include\kernel32.inc
    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib

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

    .data
    ClassName db "SimpleWinClass",0
    AppName db "Our First Window",0

    .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,CmdLin e: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 hInstance
    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
    .IF uMsg==WM_DESTROY
    invoke PostQuitMessage,NULL
    .ELSE
    invoke DefWindowProc,hWnd,uMsg,wParam,lParam
    ret
    .ENDIF
    xor eax,eax
    ret
    WndProc endp
    end start

  3. #3
    البته کتاب حتی اینگلیسی هم کم وجود داره و اصلا Free وجود ندارد. البته کتاب Art of Assembly هست ولی به نظر من اصلا وقت خود را با این کتاب طولانی تلف نکن. چوی اصلا اسمبلی یاد نداده بلکه HLA یاد داده.
    اگر خدا عمری دهد و توانی در حال ترجمه و تالیف 1 کتاب حدودا 1000 صفحه ایی هستم ولی چون کنکور دارم به کندی پیش میرود. تنها تا به حال 500 صفحه کار تمام شده.
    من تنها کتابی که دیدم در ان حدود 5-6 صفحه اسمبلی تحت Windows 3.1 یاد داده بود کتاب Advanced Assembly هست. جلدش هم زرد هست. اثر Peter Norton .

  4. #4
    دوست عزیز ، مدیریت حافظه ( و بالتبع نوع برخورد با انواع پایه ) در ویندوز و داس متفاوت هستند که باعث میشه اسمبلرهای تحت ویندوز و داس قدری متفاوت عمل کنند . در همین بخش مبحثی با عنوان تعدادی لینک مفید هست که اونجا چند راهنمای مجمل درباره اسمبلرهای ویندوزی پیدا میکنی .

    خوش باشی
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    44
    ممنون از راهنمایهای دوستان

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

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