hey folks,
yesterday, i was downloaded this source code but it seems corrupted.
I tried to assemble and link the obj file but it coudn't assemble
even !
..386P
..MODEL FLAT,STDCALL
WM_DESTROY EQU 2
WM_CREATE EQU 1
WM_LBUTTONDOWN EQU 201h
WM_RBUTTONDOWN EQU 204h
CS_VREDRAW EQU 1h
CS_HREDRAW EQU 2h
CS_GLOBALCLASS EQU 4000h
WS_OVERLAPPEDWINDOW EQU 000CF0000H
Style equ CS_HREDRAW+CS_VREDRAW+CS_GLOBALCLASS
IDI_APPLICATION EQU 32512
IDC_CROSS EQU 32515
SW_SHOWNORMAL EQU 1
EXTERN GetModulehandleA@[EMAIL PROTECTED]
LoadIconA@[EMAIL PROTECTED]
LoadCursorA@[EMAIL PROTECTED]
RegisterClassA@[EMAIL PROTECTED]
CreateWindowExA@[EMAIL PROTECTED]
ShowWindow@[EMAIL PROTECTED]
UpdateWindow@[EMAIL PROTECTED]
GetMessageA@[EMAIL PROTECTED]
TranslateMessageA@[EMAIL PROTECTED]
DispatchMessageA@[EMAIL PROTECTED]
ExitProcess@[EMAIL PROTECTED]
MessageBoxA@[EMAIL PROTECTED]
DefWindowProcA@[EMAIL PROTECTED]
PostQuitMessage@[EMAIL PROTECTED]
C:\masm32\lib\user32.lib
includelib c:\masm32\lib\kernel32.lib
MSGSTRUCT STRUC
MSHWND DD ?
MSMESSAGE DD ?
MSWPARAM DD ?
MSLPARAM DD ?
MSTIME DD ?
MSPT DD ?
MSGSTRUCT ENDS
WNDCLASS STRUC
CLSSTYLE DD ?
CLWNDPROC DD ?
CLSCEXTRA DD ?
CL****NSTANCE DD ?
CL****CON DD ?
CLSHCURSOR DD ?
CLBKGROUND DD ?
CLMENUNAME DD ?
CLNAME DD ?
WNDCLASS ENDS
_DATA SEGMENT
NEWHWND DD 0
MSG MSGSTRUCT <?>
WC WNDCLASS <?>
HINST DD 0
TITLENAME DB 'Simple Example of a 32-bit application',0
CLASSNAME DB 'Class32',0
CAP DB 'Message',0
MES1 DB 'You have clicked the left mouse button',0
MES2 DB 'Exit, bye !',0
_DATA ENDS
_TEXT SEGMENT
START:
push 0
Call GetModuleHandleA@[EMAIL PROTECTED]
mov [HINST],EAX
REG_CLASS:
MOV [WC.CLWNDPROC],OFFSET WNDPROC
MOV [WC.CLSCEXTRA],0
MOV [W.CLWNDEXTRA],0
MOV EAX,[HINST]
MOV [WC.CL****NSTANCE],EAX
PUSH IDI_APPLICATION
PUSH 0
CALL LoadIconA@[EMAIL PROTECTED]
[WC.CL****CON],EAX
PUSH IDC_CROSS
PUSH 0
CALL LoadCursorA@[EMAIL PROTECTED]
[WC.CLSHCURSOR],EAX
MOV [WC.CLBKGROUND],17
MOV [WC.CLMENUNAME],0
MOV [WC.CLNAME],OFFSET CLASSNAME
PUSH OFFSET WC
CALL RegisterClassA@[EMAIL PROTECTED]
0
PUSH [HINST]
PUSH 0
PUSH 0
PUSH 500
PUSH 500
PUSH 100
PUSH 100
PUSH WS_OVERLAPPEDWINDOW
PUSH OFFSET TITLENAME
PUSH OFFSET CLASSNAME
PUSH 0
CALL CreateWindowExA@[EMAIL PROTECTED]
EAX,0
JZ _ERR
PUSH SW_SHOWNORMAL
PUSH [NEWHWND]
CALL ShowWindow@[EMAIL PROTECTED]
[NEWHWND]
CALL UpdateWindow@[EMAIL PROTECTED]
0
PUSH 0
PUSH 0
PUSH OFFSET MSG
CALL GetMessageA@[EMAIL PROTECTED]
EAX,0
JE END_LOOP
PUSH OFFSET MSG
CALL TranslateMessageA@[EMAIL PROTECTED]
OFFSET MSG
CALL DispatchMessageA@[EMAIL PROTECTED]
MSG_LOOP
END_LOOP:
PUSH [MSG.MSWPARAM]
CALL ExitProcess@[EMAIL PROTECTED]
END_LOOP
WNDPROC PROC
PUSH EBP
MOV EBP,ESP
PUSH EBX
PUSH ESI
PUSH EDI
CMP DWORD PTR [EBP+0CH]
JE WMDESTROY
CMP DWORD PTR [EBP+0CH]
JE WMCREATE
CMP DWORD PTR [EBP+0CH]
JE LBUTTON
CMP DWORD PTR [EBP+0CH]
JE RBUTTON
JMP DEFWNDPROC
RBUTTON:
JMP WMDESTROY
LBUTTON:
PUSH 0
PUSH OFFSET CAP
PUSH OFFSET MES1
PUSH DWORD PTR [EBP+08h]
CALL MessageBoxA@[EMAIL PROTECTED]
MOV EAX,0
JMP FINISH
WMCREATE:
MOV EAX,0
JMP FINISH
DEFWNDPROC :
PUSH DWORD PTR [EBP+14h]
PUSH DWORD PTR [EBP+10h]
PUSH DWORD PTR [EBP+0Ch]
PUSH DWORD PTR [EBP+08h]
CALL DefWindowProcA@[EMAIL PROTECTED]
JMP FINISH
WMDESTROY:
PUSH 0
PUSH OFFSET CAP
PUSH OFFSET MES2
PUSH DWORD PTR [EBP+08h]
CALL MessageBoxA@[EMAIL PROTECTED]
PUSH 0
CALL PostQuitMessage@[EMAIL PROTECTED]
MOV EAX,0
FINISH:
POP EDI
POP ESI
POP EBX
POP EBP
RET 16
WNDPROC ENDP
_TEXT ENDS
END START
anybody can help to assemble and produce obj and PE file ?
if maybe , say where is the problem ...
cheers ,
-MalC0de


|