learning assembly why not doing a project at the same time.
in my opinion and after a year in 1337 I believe that learning by doing is the best way to gain the knowledge you need, so I dicided to start with a project even if it's far from my position now as a student, but it can serve as an intoduction to the assembly language, I'll be following the subject of the projects and while recreating those function and gaining more knowledge I may add other ones to the list.
- ft_strlen.
- ft_strcpy.
- ft_strcmp.
- ft_write.
- errno.
- ft_read.
- ft_strdup.
- ft_atoi_base
Linux Only - ft_create_elem
- ft_list_push_front
- ft_list_size
- ft_list_last
- ft_list_remove_if
- ft_list_sort
- Instructions easy to search and look for instructions.
- Mac's system calls numbers looking for a syscall here's the number.
- AT&T syntax when generating an assembly from C in mac (gcc -S), you'll need this.
- Linux syscalls working on linux ? here you go
- Calling Convention carefull with the calling convention
- Nasm Docs
- Online compilers:
- COMMAND LINE TOOLS:
- This is my first attempt to make real solutions in assembly the code may have bad practices (we all know that this happens when you start something new), and errors, if you stumbled upon one please contact me i'll appreciate that.
- ft_atoi_base modification:
-> I'll not handle the negative values it's just pain to see -101 in binary or thinking of how the base "abc" will handle it.
-> ft_atoi_base returns long.
-> MacOs ft_atoi_base will return -1 in case of an error in the base and -2 in the case of error in the string itself.
-> Linux ft_atoi_base will return -1 in case of Null parameters and -2 in case of base Error. - ft_list_sort:
-> ft_list_sort is using mergeSort under the hood.
-> didn't free the memory yet, I'm tired I'll make it later.
-> the compare function should return 0 if the right element is bigger then the left element. - if you have any questions or found a problem in this repo and code contact me.