fix: first time assembles
This commit is contained in:
@ -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]
|
||||
|
||||
Reference in New Issue
Block a user