feat: ft_list_size
This commit is contained in:
parent
0e0434fcbc
commit
accca3f538
2 changed files with 34 additions and 0 deletions
33
src/ft_list_size.asm
Normal file
33
src/ft_list_size.asm
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
global ft_list_size
|
||||
|
||||
%define NODE_SIZE 16
|
||||
|
||||
section .text
|
||||
|
||||
;int ft_list_size(t_list *begin_list)
|
||||
;{
|
||||
; int i = 0;
|
||||
; while (begin_list)
|
||||
; {
|
||||
; begin_list = begin_list->next
|
||||
; i++;
|
||||
; }
|
||||
; return i;
|
||||
;}
|
||||
|
||||
; rdi: t_list *
|
||||
ft_list_size:
|
||||
; int i = 0
|
||||
xor rax, rax
|
||||
|
||||
.loop:
|
||||
test rdi, rdi
|
||||
je .done
|
||||
|
||||
mov rdi, [rdi + 8]
|
||||
inc rax
|
||||
|
||||
jmp .loop
|
||||
.done:
|
||||
|
||||
ret
|
||||
|
|
@ -22,6 +22,7 @@ void *ft_memcpy(void *dest, const void *src, size_t n);
|
|||
void ft_bzero(void *s, size_t n);
|
||||
int ft_atoibase(char *str, char *base);
|
||||
void ft_list_push_front(t_list **begin_list, void *data);
|
||||
int ft_list_size(t_list *begin_list);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue