fix: first time assembles

This commit is contained in:
Miheev Egor
2024-12-08 20:13:47 +03:00
parent 08ae2e64c9
commit 34ed7f9fcc

View File

@ -75,10 +75,10 @@ openfile:
mov rax, -24[rbp]
mov esi, 0
mov rdi, rax
mov eax, 0
call open
mov eax, 2
syscall
mov -4[rbp], eax
cmp -4[rbp], 0
cmp DWORD -4[rbp], 0
jns .L8
mov rdi, 1
mov rsi, E_open_file
@ -98,27 +98,27 @@ fill_buffer:
mov rbp, rsp
sub rsp, 32
mov -20[rbp], edi
mov rdx, buffer_tail[rip]
lea rax, buffer[rip]
mov rdx, [buffer_tail]
lea rax, [buffer]
sub rdx, rax
mov eax, 1024
sub rax, rdx
mov -8[rbp], rax
mov rdx, -8[rbp]
mov eax, -20[rbp]
lea rcx, buffer[rip]
lea rcx, [buffer]
mov rsi, rcx
mov edi, eax
call read
mov -16[rbp], rax
cmp QWORD -16[rbp], 1023
ja .L11
mov BYTE iseof[rip], 1
mov BYTE [iseof], 1
.L11:
lea rdx, buffer[rip]
lea rdx, [buffer]
mov rax, -16[rbp]
add rax, rdx
mov buffer_tail[rip], rax
mov [buffer_tail], rax
nop
leave
@ -144,7 +144,7 @@ find_second_word:
find_fullname_end:
push rbp
mov rbp, rsp
lea rax, buffer[rip]
lea rax, [buffer]
mov -8[rbp], rax
jmp .L17
.L20:
@ -159,11 +159,11 @@ find_fullname_end:
test al, al
jne .L19
.L18:
lea rax, buffer[rip+1024]
lea rax, [buffer+1024]
cmp -8[rbp], rax
jb .L20
.L19:
lea rax, buffer[rip+1024]
lea rax, [buffer+1024]
cmp -8[rbp], rax
jne .L21
mov eax, 0
@ -183,7 +183,7 @@ pop_fullname:
call find_fullname_end
add rax, 1
mov -16[rbp], rax
lea rdx, buffer[rip]
lea rdx, [buffer]
mov rax, -16[rbp]
sub rax, rdx
mov -24[rbp], rax
@ -194,7 +194,7 @@ pop_fullname:
mov rax, -8[rbp]
add rax, rdx
movzx eax, BYTE [rax]
lea rcx, buffer[rip]
lea rcx, [buffer]
mov rdx, -8[rbp]
add rdx, rcx
mov BYTE [rdx], al
@ -208,11 +208,11 @@ pop_fullname:
sub rax, -24[rbp]
cmp -8[rbp], rax
jb .L25
mov rax, buffer_tail[rip]
mov rax, [buffer_tail]
mov rdx, -24[rbp]
neg rdx
add rax, rdx
mov buffer_tail[rip], rax
mov [buffer_tail], rax
nop
leave
@ -234,7 +234,7 @@ print_count:
jmp .L27
.L28:
mov rcx, -24[rbp]
movabs rdx, -3689348814741910323
mov rdx, -3689348814741910323
mov rax, rcx
mul rdx
shr rdx, 3
@ -248,7 +248,7 @@ print_count:
add eax, 48
mov BYTE -1[rbp], al
mov rax, -24[rbp]
movabs rdx, -3689348814741910323
mov rdx, -3689348814741910323
mul rdx
mov rax, rdx
shr rax, 3
@ -276,7 +276,7 @@ get_name:
mov rbp, rsp
sub rsp, 40
mov -40[rbp], rdi
lea rax, buffer[rip]
lea rax, [buffer]
mov rdi, rax
call find_second_word
mov -24[rbp], rax
@ -318,7 +318,7 @@ get_name:
leave
ret
main:
_start:
push rbp
mov rbp, rsp
sub rsp, 96
@ -331,7 +331,7 @@ main:
call openfile
mov -12[rbp], eax
mov edx, 64
lea rax, name[rip]
lea rax, [name]
mov rsi, rax
mov edi, 0
call read
@ -357,7 +357,7 @@ main:
mov rdi, rax
call get_name
lea rax, -80[rbp]
lea rdx, name[rip]
lea rdx, [name]
mov rsi, rdx
mov rdi, rax
call namecmp
@ -367,8 +367,8 @@ main:
.L38:
mov eax, 0
call pop_fullname
mov rdx, buffer_tail[rip]
lea rax, buffer[rip]
mov rdx, [buffer_tail]
lea rax, [buffer]
cmp rdx, rax
jne .L39
mov rax, -8[rbp]