From 8be7bb871894e435b00538810d16887fe75412ee Mon Sep 17 00:00:00 2001 From: numzero Date: Sun, 11 Aug 2024 23:27:02 +0300 Subject: [PATCH] Use rodata --- func.S | 2 +- main.S | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/func.S b/func.S index 8d1a6b4..63ee81a 100644 --- a/func.S +++ b/func.S @@ -13,7 +13,7 @@ #define AF_INET PF_INET #define SOCK_STREAM 1 -.data +.section .rodata errstr: .ascii "error happened\n" .set errstr_len, .-errstr diff --git a/main.S b/main.S index bf2b27d..ae727ac 100644 --- a/main.S +++ b/main.S @@ -14,7 +14,7 @@ #define PORT 20335 -.data +.section .rodata greeting: .ascii "Welcome to the minimalistic echo server!\n" .ascii "It is written in pure assembly, and it don't use the standard library, only raw system calls.\n" @@ -29,14 +29,11 @@ message: .ascii "Client connected\n" errstr: .ascii "Error happened\n" .set errstr_len, .-errstr -s: .quad 0 -s2: .quad 0 - true_val: .quad 1 .set true_val_len, .-true_val myaddr: - .hword AF_INET + .hword AF_INET port: .byte (PORT >> 8) & 0xFF, (PORT & 0xFF) addr: .byte 0, 0, 0, 0 .set myaddr_len, 16 @@ -44,6 +41,9 @@ myaddr: .extern passthru .extern write_buf +#define server_socket %rbx +#define connection_socket %r12 + .text .global _start _start: @@ -59,10 +59,10 @@ _start: syscall cmp $-1, %rax jz error - movq %rax, s + movq %rax, server_socket movq $__NR_setsockopt, %rax - movq s, %rdi + movq server_socket, %rdi movq $SOL_SOCKET, %rsi movq $SO_REUSEADDR, %rdx movq $true_val, %r10 @@ -72,7 +72,7 @@ _start: jnz error movq $__NR_bind, %rax - movq s, %rdi + movq server_socket, %rdi movq $myaddr, %rsi movq $myaddr_len, %rdx syscall @@ -80,7 +80,7 @@ _start: jnz error movq $__NR_listen, %rax - movq s, %rdi + movq server_socket, %rdi movq $8, %rsi syscall test %rax, %rax @@ -88,14 +88,14 @@ _start: loop: movq $__NR_accept, %rax - movq s, %rdi + movq server_socket, %rdi movq $0, %rsi movq $0, %rdx movq $0, %r10 syscall cmp $-1, %rax jz error - movq %rax, s2 + movq %rax, connection_socket movq $STDOUT, %rdi movq $message, %rsi @@ -116,7 +116,7 @@ loop: /* we're in the parent if we reach this line */ movq $__NR_close, %rax - movq s2, %rdi + movq connection_socket, %rdi syscall test %rax, %rax jnz error @@ -124,7 +124,7 @@ loop: exit: movq $__NR_close, %rax - movq s, %rdi + movq server_socket, %rdi syscall test %rax, %rax jnz error @@ -148,12 +148,12 @@ error: child: /* we're in the child if we reach this line */ - movq s2, %rdi - movq s2, %rsi + movq connection_socket, %rdi + movq connection_socket, %rsi call passthru movq $__NR_close, %rax - movq s2, %rdi + movq connection_socket, %rdi syscall movq $__NR_exit, %rax