Я пытаюсь сделать веб-сервер, используя сборку x86_64, и по какой-то причине сервер не будет связываться даже с помощью AM, передавая правильные аргументы < /p>
section .text
extern socket, bind, listen, accept, perror
global main
main:
; allocating sockaddr_in
sub rsp, SIZE_OF_SERVER_ADDR
; ; sin_family
mov word [rsp], AF_INET
; ; sin_port
mov word [rsp + 2], PORT
; ; s_addr
mov dword [rsp + 4], INADDR_ANY
; ; unsigned char data[8]
mov qword [rsp + 8], 0x0
mov rdi, AF_INET
mov rsi, SOCK_STREAM
mov rdx, 0
call socket
cmp rax, 0
jl exit_socket_error
; holding the socket_fd
mov r12, rax
mov rdi, r12
mov rsi, rsp
mov rdx, SIZE_OF_SERVER_ADDR
call bind
cmp rax, 0
jl exit_bind_error
mov rdi, r12
mov rsi, 10
call listen
cmp rax, 0
jl exit_error
call listening_msg
while:
mov rdi, r12
mov rsi, rsp
mov rdx, 4
call accept
cmp rax, 0
jl exit_error
call client_connect
jmp while
< /code>
Я уже пытался передавать аргументы на пользовательскую функцию, чтобы увидеть, не удастся ли, но не возвращает -1 ни в одной из функций. Но когда я сделаю запрос на сервер, я получаю < /p>
Failed to connect to localhost port 6000 after 0 ms: Couldn't connect to server
Подробнее здесь: https://stackoverflow.com/questions/794 ... n-assembly