1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

bind cmd

Тема в разделе "NASM", создана пользователем Orbit, 14 дек 2016.

Метки:
  1. Orbit

    Orbit Member

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

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    576
    Адрес:
    Russia
    Скормил гуглу "relocation truncated to fit" -> http://stackoverflow.com/questions/25314357/relocation-truncated-to-fit-r-x86-64-32

    The problem is that general x64 instructions do not allow direct 64-bit addresses in their encodings.

    И там предлагают адресовать не напрямую смещение, а загонять его напр. в RAX, и адресовать уже по регистру, т.е. как [RAX]

    (вместо rax - любой неиспользуемый регистр)
     
  3. Orbit

    Orbit Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    109
    Адрес:
    г. Москва
    Огромное спасибо!
    Программа вываливается, где я ошибся?

    Код (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. SECTION .bss
    12.  
    13. SECTION .data
    14.  
    15. port: equ 777
    16.  
    17. struc WSADATA
    18. .wVersion: resw 1
    19. .wHighVersion: resw 1
    20. .szDescription: resb 256
    21. .szSystemStatus: resb 256
    22. .iMaxSockets: resd 1
    23. .iMaxUdpDg: resd 1
    24. .lpVendorInfo: resq 1
    25. endstruc
    26.  
    27. struc sockaddr_in
    28. .sin_family: resd 1
    29. .sin_port: resd 1
    30. .sin_addr: resb in_addr
    31. .sin_zero: resb 8
    32. .size:
    33. endstruc
    34.  
    35. struc in_addr
    36. .s_addr: resq 1
    37. endstruc
    38.  
    39. SECTION .code
    40.  
    41. global main
    42.  
    43. main:
    44.  
    45. mov rdx , [WSADATA]
    46. mov rcx , 0x202
    47. call WSAStartup
    48.  
    49. mov r8 , 0
    50. mov rdx , 1
    51. mov rcx , 2
    52. call socket
    53.  
    54. mov [r13] , rax
    55. mov dword [sockaddr_in.sin_family] , 1
    56. mov qword [sockaddr_in.sin_addr] , 0
    57. mov ax , port
    58. xchg ah , al
    59. mov [sockaddr_in.sin_port] , ax
    60. mov r8 , sockaddr_in.size
    61. mov rdx , [sockaddr_in]
    62. mov [rcx] , r13
    63. call bind
    64.  
    65. mov rdx , 13
    66. mov [rcx] , r13
    67. call listen
    68.  
    69. mov r8 , 0
    70. mov rdx , [sockaddr_in]
    71. mov [rcx] , r13
    72. call accept
    73.  
    74. mov rcx , 60000
    75.  
    76. call Sleep
    77.  
    78. call WSACleanup
    79.  
    80. mov rcx,rax
    81. call ExitProcess
    82.  
     
    Последнее редактирование модератором: 14 дек 2016
  4. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    576
    Адрес:
    Russia
    А вот это уже отлаживать нужно в отладчике :)
     
  5. Orbit

    Orbit Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    109
    Адрес:
    г. Москва
    Скачал x64dbg

    [​IMG]

    Код (ASM):
    1. mov rdx , [WSADATA]

    Интерпретируется как:
    Код (ASM):
    1. mov rdx,qword prt ds:0
    Что-то не то со структурой WSADATA ?
     
    Последнее редактирование модератором: 14 дек 2016
  6. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    576
    Адрес:
    Russia
    Что-то мне подсказывает, что у вас нет навыков прогр-я под вин64 на асм. У меня тоже их нет, но здесь возникающие вопросы говорят о серьезном недостатке навыков. Быть может, программу попроще? Быть может на x32? Я могу ошибаться, если вдруг обидел, и эти проблемы именно из-за синтаксиса NASM.
     
    Mikl___ нравится это.
  7. Orbit

    Orbit Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    109
    Адрес:
    г. Москва
    Конечно нету , я пишу это что бы научиться NASM
    Тут есть всё что бы вникнуть в синтаксис
     
    Последнее редактирование: 14 дек 2016
  8. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    576
    Адрес:
    Russia
    Некорректно обращаетесь к началу (смещению) этой структуры, или же я так понял, объявили структуру структуры (что Человек = существо с головой и руками-ногами), но не объявили ее представителя (Вася = Человек).

    http://stackoverflow.com/questions/...the-first-struct-member-list-in-nasm-assembly

    google "nasm structure example"

    Судя по картинке, там еще несколько мест, где идет обращение к нулевой ячейке, и где закономерным образом вашу программу будут закрывать с ошибкой.
     
    Mikl___ нравится это.
  9. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    1
    Регистрация:
    11 июн 2004
    Сообщения:
    3.113
    Адрес:
    Russia
    Все правильно вам _edge подсказал, вы объявили структуру, но переменную не объявили. Соответственно вам компилятор выдал 0. С 64 битами это мало связано. Простое незнание компилятора.
    в тоже секции .data объявите переменные
    Наподобие:
    Код (ASM):
    1.  
    2. SEGMENT .data
    3. myWSADATA: ISTRUC WSADATA
    4. ;здесь заполняем поля структуры
    5. IEND
    Либо просто делаете
    Код (ASM):
    1.  
    2. push rbp
    3. mov  rbp, rsp
    4. sub   rsp, WSADATA.size ;(поле  size Надо добавить в конец структуры )
    Либо резервируете место в .bss
    Код (ASM):
    1. SEGMENT .bss
    2. myWSADATA: RESB WSADATA.size
    А в коде уже обращайтесь к myWSADATA либо к стеку, если выделили память на стеке.
     
    Mikl___ нравится это.
  10. Orbit

    Orbit Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    109
    Адрес:
    г. Москва
    Не палучается инициализировать структуры:

    Код (ASM):
    1. extern WSAStartup
    2. extern WSACleanup
    3. extern socket
    4. extern Sleep
    5. extern ExitProcess
    6. extern accept
    7. extern listen
    8. extern bind
    9.  
    10. SECTION .bss
    11.  
    12.  
    13. stsockaddr_in: resb sockaddr_in.size
    14.  
    15. SECTION .data
    16.  
    17. port: equ 777
    18.  
    19. struc WSADATA
    20. .wVersion: resw 1
    21. .wHighVersion: resw 1
    22. .szDescription: resb 256
    23. .szSystemStatus: resb 256
    24. .iMaxSockets: resd 1
    25. .iMaxUdpDg: resd 1
    26. .lpVendorInfo: resq 1
    27. endstruc
    28.  
    29. stWSADATA:
    30. istruc WSADATA
    31. at wVersion, dw 0
    32. at wHighVersion, dw 0
    33. at szDescription, db 0
    34. at szSystemStatus, db 0
    35. at iMaxSockets, dd 0
    36. at iMaxUdpDg, dd 0
    37. at lpVendorInfo, dq 0
    38. iend
    39.  
    40. struc sockaddr_in
    41. .sin_family: resd 1
    42. .sin_port: resd 1
    43. .sin_addr: resq 1
    44. .sin_zero: resb 8
    45. .size:
    46. endstruc
    47.  
    48. stsockaddr_in:
    49. istruc sockaddr_in
    50. at sin_famlily, dd 0
    51. at sin_port, dd 0
    52. at sin_addr, dq 0
    53. at sin_zero, db 0
    54. iend
    55.  
    56. struc in_addr
    57. s_addr: resq 1
    58. endstruc
    59.  
    60. stin_addr:
    61. istruc
    62. struc in_addr
    63. at s_addr, dq 0
    64. iend
    65.  
    66. SECTION .code
    Код (Text):
    1.  
    2. cmd.asm:32: error: non-constant argument supplied to TIMES
    3. cmd.asm:33: error: non-constant argument supplied to TIMES
    4. cmd.asm:34: error: non-constant argument supplied to TIMES
    5. cmd.asm:35: error: non-constant argument supplied to TIMES
    6. cmd.asm:36: error: non-constant argument supplied to TIMES
    7. cmd.asm:37: error: non-constant argument supplied to TIMES
    8. cmd.asm:38: error: non-constant argument supplied to TIMES
    9. cmd.asm:48: error: symbol `stsockaddr_in' redefined
    10. cmd.asm:50: error: non-constant argument supplied to TIMES
    11. cmd.asm:51: error: non-constant argument supplied to TIMES
    12. cmd.asm:52: error: non-constant argument supplied to TIMES
    13. cmd.asm:53: error: non-constant argument supplied to TIMES
    14. cmd.asm:62: error: symbol `in_addr' redefined
    15. cmd.asm:63: error: non-constant argument supplied to TIMES
    16. cmd.asm:64: error: non-constant argument supplied to TIMES
    17.  
     
    Последнее редактирование модератором: 15 дек 2016
  11. Orbit

    Orbit Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    109
    Адрес:
    г. Москва
    Даже так выдаёт ошибку:
    Код (ASM):
    1. extern WSAStartup
    2. extern WSACleanup
    3. extern socket
    4. extern Sleep
    5. extern ExitProcess
    6. extern accept
    7. extern listen
    8. extern bind
    9.  
    10. SECTION .bss
    11.  
    12. stsockaddr_in: resb sockaddr_in.size
    13.  
    14. SECTION .data
    15.  
    16. port: equ 777
    17.  
    18. struc WSADATA.
    19. .wVersion: resw 1
    20. .wHighVersion: resw 1
    21. .szDescription: resb 256
    22. .szSystemStatus: resb 256
    23. .iMaxSockets: resd 1
    24. .iMaxUdpDg: resd 1
    25. .lpVendorInfo: resq 1
    26. endstruc
    27.  
    28. stWSADATA:
    29. istruc WSADATA
    30. at WSADATA.wVersion, dw 0
    31. at WSADATA.wHighVersion, dw 0
    32. at WSADATA.szDescription, db 0
    33. at WSADATA.szSystemStatus, db 0
    34. at WSADATA.iMaxSockets, dd 0
    35. at WSADATA.iMaxUdpDg, dd 0
    36. at WSADATA.lpVendorInfo, dq 0
    37. iend
    38.  
    39. struc sockaddr_in
    40. .sin_family: resd 1
    41. .sin_port: resd 1
    42. .sin_addr: resq 1
    43. .sin_zero: resb 8
    44. .size:
    45. endstruc
    46.  
    47. stsockaddr_in:
    48. istruc sockaddr_in
    49. at sockaddr_in.sin_famlily, dd 0
    50. at sockaddr_in.sin_port, dd 0
    51. at sockaddr_in.sin_addr, dq 0
    52. at sockaddr_in.sin_zero, db 0
    53. iend
    54.  
    55. struc in_addr
    56. s_addr: resq 1
    57. endstruc
    58.  
    59. stin_addr:
    60. istruc
    61. struc in_addr
    62. at in_addr.s_addr, dq 0
    63. iend
    64.  
    Код (Text):
    1.  
    2. cmd.asm:38: error: non-constant argument supplied to TIMES
    3. cmd.asm:48: error: symbol `stsockaddr_in' redefined
    4. cmd.asm:50: error: non-constant argument supplied to TIMES
    5. cmd.asm:62: error: symbol `in_addr' redefined
    6. cmd.asm:63: error: non-constant argument supplied to TIMES
    7. cmd.asm:64: error: non-constant argument supplied to TIMES
    8.  
     
    Последнее редактирование модератором: 15 дек 2016
  12. Orbit

    Orbit Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    109
    Адрес:
    г. Москва
    redefined я так понимаю это изменения параметров структуры?
     
  13. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    576
    Адрес:
    Russia
    Сложно сходу понять, к сожалению.
    Как будто идет повторное переобъявление переменных (параметров структуры), а они уже заданы до этого.

    (https://forum.nasm.us/index.php?topic=395.0)

    Может, убрать эти структуры, и просто работать со смещением полей относительно условного начала структур?

    wsadata:
    1st_field dw 1234h
    2st_field db 99h
    3rd_field dd 12345678h

    и обращение к третьему полю будет как [wsadata+2+1], где 2 и 1 - размеры предыдущих полей, dw и db.


    А вообще хочу сказать что все правильно делаете. Раз уж начинать, с 64 сразу, чтобы мозг 16-биткой не засорять. И неплохую практическую задачу, шелл.
     
  14. Orbit

    Orbit Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    109
    Адрес:
    г. Москва
    Спасибо ^_^
     
  15. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    1
    Регистрация:
    11 июн 2004
    Сообщения:
    3.113
    Адрес:
    Russia
    Второй пример почти правильный - нафиг было объявлять 2 одинаковые переменные?
    вначале в bss объявили stsockaddr_in, а потом в data ))
    Вы уж определитесь )
     
  16. Orbit

    Orbit Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    109
    Адрес:
    г. Москва
    Убрал но всеравно ошибки
    error: symbol `in_addr' redefined
    и
    non-constant argument supplied to TIMES
    Код (ASM):
    1. extern WSAStartup
    2. extern WSACleanup
    3. extern socket
    4. extern Sleep
    5. extern ExitProcess
    6. extern accept
    7. extern listen
    8. extern bind
    9.  
    10. SECTION .bss
    11.  
    12. SECTION .data
    13.  
    14. port: equ 777
    15.  
    16. struc WSADATA.
    17. .wVersion: resw 1
    18. .wHighVersion: resw 1
    19. .szDescription: resb 256
    20. .szSystemStatus: resb 256
    21. .iMaxSockets: resd 1
    22. .iMaxUdpDg: resd 1
    23. .lpVendorInfo: resq 1
    24. endstruc
    25.  
    26. stWSADATA:
    27. istruc WSADATA
    28. at WSADATA.wVersion, dw 0
    29. at WSADATA.wHighVersion, dw 0
    30. at WSADATA.szDescription, db 0
    31. at WSADATA.szSystemStatus, db 0
    32. at WSADATA.iMaxSockets, dd 0
    33. at WSADATA.iMaxUdpDg, dd 0
    34. at WSADATA.lpVendorInfo, dq 0
    35. iend
    36.  
    37. struc sockaddr_in
    38. .sin_family: resd 1
    39. .sin_port: resd 1
    40. .sin_addr: resq 1
    41. .sin_zero: resb 8
    42. .size:
    43. endstruc
    44.  
    45. stsockaddr_in:
    46. istruc sockaddr_in
    47. at sockaddr_in.sin_famlily, dd 0
    48. at sockaddr_in.sin_port, dd 0
    49. at sockaddr_in.sin_addr, dq 0
    50. at sockaddr_in.sin_zero, db 0
    51. iend
    52.  
    53. struc in_addr
    54. s_addr: resq 1
    55. endstruc
    56.  
    57. stin_addr:
    58. istruc
    59. struc in_addr
    60. at in_addr.s_addr, dq 0
    61. iend
    62.  
    63. SECTION .code
    64.  
    65. global main
    66.  
    67. main:
    68.  
    69. mov rdx , [WSADATA]
    70. mov rcx , 0x202
    71. call WSAStartup
    72.  
    73. mov r8 , 0
    74. mov rdx , 1
    75. mov rcx , 2
    76. call socket
    77.  
    78. mov [r13] , rax
    79. mov dword [sockaddr_in.sin_family] , 1
    80. mov qword [sockaddr_in.sin_addr] , 0
    81.  
    82. mov ax , port
    83. xchg ah , al
    84. mov dword [sockaddr_in.sin_port] , ax
    85.  
    86. mov r8 , sockaddr_in.size
    87. mov rdx , [sockaddr_in]
    88. mov [rcx] , r13
    89. call bind
    90.  
    91. mov rdx , 13
    92. mov [rcx] , r13
    93. call listen
    94.  
    95. mov r8 , 0
    96. mov rdx , [sockaddr_in]
    97. mov [rcx] , r13
    98. call accept
    99.  
    100. mov rcx , 60000
    101.  
    102. call Sleep
    103.  
    104. call WSACleanup
    105.  
    106. mov rcx , rax
    107. call ExitProcess
    Код (Text):
    1. cmd.asm:36: error: non-constant argument supplied to TIMES
    2. cmd.asm:48: error: non-constant argument supplied to TIMES
    3. cmd.asm:60: error: symbol `in_addr' redefined
    4. cmd.asm:61: error: non-constant argument supplied to TIMES
    5. cmd.asm:62: error: non-constant argument supplied to TIMES
     
    Последнее редактирование модератором: 15 дек 2016
  17. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    471
    В самом коде много неточностей. К примеру:
    Код (ASM):
    1. mov [r13] , rax
    На что ссылается r13? Также размеры полей структур также вызывают смущение (хотя не знаю какое там выравнивание по умолчанию). Что касается объявления то лучше все объявить в .bss, если ты в коде инициализируешь значения. Код пишу без проверки, может что-то не работать:
    Код (ASM):
    1. extern WSAStartup
    2. extern WSACleanup
    3. extern socket
    4. extern Sleep
    5. extern ExitProcess
    6. extern accept
    7. extern listen
    8. extern bind
    9.  
    10. struc in_addr
    11.     .s_addr: resd 1
    12.     .size:
    13. endstruc
    14.  
    15. struc sockaddr
    16.     .sin_family: resw 1
    17.     .sin_port: resw 1
    18.     .sin_addr: resb in_addr.size
    19.     .sin_zero: resb 8
    20.     .size:
    21. endstruc
    22.  
    23. struc WSADATA
    24.     .wVersion: resw 1
    25.     .wHighVersion: resw 1
    26.     .szDescription: resb 256
    27.     .szSystemStatus: resb 256
    28.     .iMaxSockets: resw 1
    29.     .iMaxUdpDg: resw 1
    30.     .lpVendorInfo: resq 1
    31.     .size:
    32. endstruc
    33.  
    34. SECTION .bss
    35. ws_addr: resb sockaddr.size
    36. ws_wsa: resb WSADATA.size
    37.  
    38. SECTION .data
    39. port: equ 777
    40.  
    41. global main
    42. main:
    43. mov rdx , [ws_wsa]
    44. mov rcx , 0x202
    45. call WSAStartup
    46. mov r8 , 0
    47. mov rdx , 1
    48. mov rcx , 2
    49. call socket
    50. mov r13 , rax
    51.  
    52. mov dword [ws_addr + sockaddr.sin_family] , 1
    53. mov qword [ws_addr + sockaddr.sin_addr] , 0
    54. mov ax , port
    55. xchg ah , al
    56. mov [ws_addr + sockaddr.sin_port] , ax
    57. mov r8 , sockaddr.size
    58. mov rdx , [ws_addr]
    59. mov rcx , r13
    60. call bind
    61. mov rdx , 13
    62. mov rcx , r13
    63. call listen
    64. mov r8 , 0
    65. mov rdx , [ws_addr]
    66. mov rcx , r13
    67. call accept
    68. mov rcx , 60000
    69. call Sleep
    70. call WSACleanup
    71. mov rcx,rax
    72.  
    73. call ExitProcess
     
  18. Orbit

    Orbit Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    109
    Адрес:
    г. Москва
    То же не линкуется
    Код (Text):
    1.  
    2. C:\Users\hackd\Desktop\NASM>nasm cmd.asm -f win64 -o cmd.obj
    3. C:\Users\hackd\Desktop\NASM>gcc cmd.obj -lws2_32 -m64 -o cmd.exe
    4. cmd.obj:cmd.asm:(.data+0x4): relocation truncated to fit: R_X86_64_32 against `.bss'
    5. cmd.obj:cmd.asm:(.data+0x2d): relocation truncated to fit: R_X86_64_32 against `.bss'
    6. cmd.obj:cmd.asm:(.data+0x39): relocation truncated to fit: R_X86_64_32 against `.bss'
    7. cmd.obj:cmd.asm:(.data+0x4b): relocation truncated to fit: R_X86_64_32 against `.bss'
    8. cmd.obj:cmd.asm:(.data+0x59): relocation truncated to fit: R_X86_64_32 against `.bss'
    9. cmd.obj:cmd.asm:(.data+0x7c): relocation truncated to fit: R_X86_64_32 against `.bss'
    10. collect2: error: ld returned 1 exit status
    11.  
    в r13 socker handle от call socket
     
  19. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    1
    Регистрация:
    11 июн 2004
    Сообщения:
    3.113
    Адрес:
    Russia
    Код (ASM):
    1. stin_addr:
    2. istruc
    3. struc in_addr
    4. at in_addr.s_addr, dq 0
    5. iend
    Вот у вас ошибка в строке 3. зачем еще раз объявляете struc in_addr (уберите слово struc )

    будьте пожалуйста вниматльенее
     
  20. Orbit

    Orbit Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    109
    Адрес:
    г. Москва
    Спасибо огромное, недоглядел, исправил.
    Ошибка cmd.asm:35: error: non-constant argument supplied to TIMES остается
    ссылается на конец структуры WSADATA endstruc