Пример из уроков, но как реализовать первую строку примера применительно к FASM? push size SOCKADDR ;;;=== Как реализовать в FASM lea eax,[ebp+saddr] push eax push dword ptr [ebp+SocketHandle] call connect inc eax jz close_socket Спасибо.
а структура SOCKADDR описана? там в инклудах не все структуры описаны - нужно самому описывать. я проверил push sizeof.WNDCLASS - получилось (фасм не ругался)
Код (Text): 00401000 00 DB 00 ;======================================== 00401001 00 DB 00 format pe gui 00401002 00 DB 00 include '%fasminc%\win32a.inc' 00401003 00 DB 00 ;======================================== 00401004 00 DB 00 sa sockaddr 00401005 00 DB 00 ;======================================== 00401006 00 DB 00 entry $ 00401007 00 DB 00 push sizeof.sockaddr 00401008 00 DB 00 invoke ExitProcess,0 00401009 00 DB 00 ;======================================== 0040100A 00 DB 00 data import 0040100B 00 DB 00 library kernel32,'kernel32.dll' 0040100C 00 DB 00 include '%fasminc%\apia\kernel32.inc' 0040100D 00 DB 00 end data 0040100E 00 DB 00 ;======================================== 0040100F 00 DB 00 00401010 <Modul>/$ 6A 10 PUSH 10 00401012 |. 6A 00 PUSH 0 ; /ExitCode = 0 00401014 \. FF15 57104000 CALL DWORD PTR [<&kernel32.ExitProcess>] ; \ExitProcess
У кого такие сложности, могут и в регистр сначала размер запихнуть. А те кто плохо дружат с совместимостью пускай вписывают размер вручную сразу цифрами.