Skip to content

Kuninoto/42_libasm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libasm (42Porto - 42Cursus)

Description

A few string manipulation functions and libc system call wrappers written in x86_64 Assembly with the Intel syntax

Grade: 100/100

Installing and running the project

1- Install dependencies

sudo apt install -y nasm

2- Clone this repository

git clone https://github.com/Kuninoto/42_libasm

3- Navigate to libasm/, assemble and wipe the artifact files

cd 42_libasm/libasm && make && make clean

4- Compile your program with your new libasm

Example (with C): cc -Wall -Wextra -Werror main.c libasm.a

Makefile available targets

make or make all - Makes libasm.a
make clean - Deletes all the resulting object files
make fclean - Deletes libasm.a and all the resulting object files
make re - Deletes everything (object files and libasm.a) and rebuilds libasm.a

Adding new functions to this library:

  • Add their prototypes to libasm.h
  • Add their source files to libasm/
  • Add their source file names to the GENERAL variable inside the Makefile
  • Rebuild the library with make re
To keep track of what's inside your resulting libasm.a run ar -t libasm.a

Useful links

You Can Learn Assembly in 10 Minutes (it’s easy)
How do I know what registers function parameters will be mapped on?
syscalls(2) man page
Linux System Call Table for x86_64
x64 ASM Cheat Sheet
NASM tutorial
How does push and pop work in assembly
CPU Registers x86
Godbolt


Made by Nuno Carvalho (Kuninoto) | [email protected]

About

Some libc functions implemented in x86_64 ASM with Intel Syntax - introduction to ASM.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published