.386 .model flat, stdcall option casemap :none include C:\MASM32\INCLUDE\windows.inc include C:\MASM32\INCLUDE\kernel32.inc include C:\MASM32\INCLUDE\shell32.inc include C:\MASM32\INCLUDE\wsock32.inc includelib C:\MASM32\LIB\kernel32.lib includelib C:\MASM32\LIB\shell32.lib includelib C:\MASM32\LIB\wsock32.lib ; ###################################################################### ### .data h_output DWORD ? str1 db ? str_len DWORD ? VERSION1_1 DWORD 1 gg DWORD ? err DWORD ? WSADATA struct mVersion dw 0 mHighVersion dw 0 szDescription db 257 dup(0) szSystemStatus db 129 dup(0) iMaxSockets dw 0 iMaxUpdDg dw 0 lpVendorInfo dd 0 WSADATA ends wsa WSADATA <?> .code start: invoke WSAStartup, ADDR wsa, 1 ;call proc1 ; invoke WSAStartup,offset WSADATA, VERSION1_1 invoke ExitProcess,0 end start вот код выше. в дебагере после WSAStartup открывается окно Access violation write to address=1 что не так?
Код (Text): invoke WSAStartup,101h,OF wsadata можно также попробовать версию 2.02 (0202h), но она под старыми операционками отсутсвует. Так что сперва пробуем новую, если не идет - 1.01
;##################... WSADATA struct mVersion dw 0 mHighVersion dw 0 szDescription db 257 dup(0) szSystemStatus db 129 dup(0) iMaxSockets dw 0 iMaxUpdDg dw 0 lpVendorInfo dd 0 WSADATA ends ;################### wsa WSADATA <?> .code start: invoke WSAStartup, 0101h, offset wsa ;#####################.... в eax засовываются нуль почему???
WSAStartup returns zero if successful. Если пишешь подо что нибудь (в данном случае Винду), читай документацию.
если под юникс, то там нет ничего похожего на WSAStartup сразу пишешь : int fd_; if ((fd_ = socket(AF_INET,SOCK_STREAM,0))<0); { //error }