LLD BSD EXE

Тема в разделе "NASM", создана пользователем Orbit, 12 ноя 2017.

  1. Orbit

    Orbit Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    97
    Адрес:
    г. Москва
    Как слинковать ехе фаил?
     
  2. Orbit

    Orbit Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    97
    Адрес:
    г. Москва
    Код на nasm, с ошибками и не линкуется:
    Код (ASM):
    1.  
    2. extern WSAStartup
    3. extern WSACleanup
    4. extern socket
    5. extern Sleep
    6. extern ExitProcess
    7. extern accept
    8. extern listen
    9. extern bind
    10.  
    11.  
    12. SECTION .bss
    13.  
    14.   hSocket:  resq 1
    15.  
    16.  
    17. SECTION .data
    18.  
    19. port: equ 777
    20.  
    21. struc WSADATA
    22.   .wVersion:  resw 1
    23.   .wHighVersion:  resw 1
    24.   .szDescription:  resb 256
    25.   .szSystemStatus:  resb 256
    26.   .iMaxSockets:  resd 1
    27.   .iMaxUdpDg:  resd 1
    28.   .lpVendorInfo:  resq 1
    29. endstruc
    30.  
    31. struc sockaddr_in
    32.   .sin_family:  resd 1
    33.   .sin_port:  resd 1
    34.   .sin_addr:  resb in_addr
    35.   .sin_zero:  resb 8
    36.   .size:
    37. endstruc
    38.  
    39. struc in_addr
    40.   .s_addr:  resq 1
    41. endstruc
    42.  
    43. SECTION .code
    44.  
    45. global main
    46.  
    47. main:
    48.  
    49.   mov rdx , [WSADATA]
    50.   mov rcx , 0x202
    51.   call WSAStartup
    52.  
    53.   mov r8 , 0
    54.   mov rdx , 1
    55.   mov rcx , 2
    56.   call socket
    57.  
    58.   mov [hSocket] , rax
    59.  
    60.   mov dword [sockaddr_in.sin_family] , 1
    61.   mov qword [sockaddr_in.sin_addr] , 0
    62.   mov ax , port
    63.   xchg ah , al
    64.   mov [sockaddr_in.sin_port] , ax
    65.  
    66.   mov r8 , sockaddr_in.size
    67.   mov rdx , [sockaddr_in]
    68.   mov rcx , hSocket
    69.   call bind
    70.  
    71.   mov rdx , 13
    72.   mov rcx , hSocket
    73.   call listen
    74.  
    75.   mov r8 , 0
    76.   mov rdx , [sockaddr_in]
    77.   mov rcx , hSocket
    78.   call accept
    79.  
    80.   mov rcx , 60000
    81.   call Sleep
    82.  
    83.  
    84.   call WSACleanup
    85.  
    86.   mov rcx,0
    87.   call ExitProcess
    88.  
    компилирую
    [​IMG]