Welcome to string_lib_asm
, a collection of assembly language helper functions, offering functionality that closely parallels the string manipulation capabilities found in the C standard library string.h
.
The library implements the following functions:
strlen
asmy_strlen
strchr
asmy_strchr
memset
asmy_memset
memcpy
asmy_memcpy
strcmp
asmy_strcmp
memmove
asmy_memmove
strncmp
asmy_strncmp
strcasecmp
asmy_strcasecmp
index
asmy_index
read
asmy_read
write
asmy_write
Each function is contained within its own .S
file. The automated build process creates an executable program as well as static and dynamic libraries.
This program will only compile on Linux systems with an X86-64 architecture. To compile the library and its components, run the Makefile from the project repository.
Compile:
make
Clean up:
make fclean
The static and dynamic libraries can be used with any C program on Linux systems with X86-64 architecture.
Within the my_libasm
program, each assembly function is callable from a corresponding C function, with a standardized naming convention, e.g., asm_strlen()
in C calls my_strlen()
in assembly.
Run the unit tests for each function via the main()
in my_libasm.c
:
./my_libasm
-
Advanced Assembly Programming: Developed assembly language functions for string manipulation, showcasing knowledge of low-level programming.
-
Library Development: Proficient in creating both static and dynamic libraries, enabling distribution and reusability of code across projects.
-
Build Automation: Implemented an automated build process using Makefile, showing the ability to streamline the compilation and linking of complex projects.
-
Cross-Language Integration: Integrated assembly routines with C, highlighting an understanding of language interoperability.
Group project created by: Rebecca Whipple Silverstein and Mathius Johnson