Reimplementation of essential libc functions and linked list utilities in x86_64 assembly
Designed for low-level systems programming, runtime development, and performance-oriented C/C++ applications.
This project is a runtime library implemented in x86_64 assembly, focusing on a minimal subset of libc functions and basic data structures. It follows the System V AMD64 ABI and Linux x86_64 syscall conventions.
Key features:
- ⚙️ Core libc-like functions (string, memory, etc.)
- 🔗 Basic linked list implementation
- 🧠 Strict adherence to x86_64 System V ABI
- 📡 Direct interaction with Linux kernel syscalls (no libc dependency)
- 🛠️ Easy to build and integrate into larger low-level libraries or runtime projects
The project demonstrates a deep understanding of assembly, ABI conventions, operating system interfaces, and low-level optimization, which is valuable for positions in systems programming and runtime development.
High-level libraries like glibc or musl abstract away many runtime details. This project allows you to:
- Understand function calling conventions, stack frames, and register usage
- Gain hands-on experience with syscall interfaces in user space
- Build independent low-level libraries with minimal dependencies
- Showcase skills relevant to systems programming, kernel/driver development, and embedded runtime environments
.
├── includes/ # Assembly & C headers
├── srcs/ # Assembly source files and C test file
├── Makefile # Build scripts
└── libasm.pdf # Design and implementation documentation
Clone the repository:
git clone https://github.com/TTSS0529/x86_64-libasm-runtime.git
cd x86_64-libasm-runtimeBuild the library using Make:
makeThe resulting object files or static library can be linked into C/C++ projects.
Test results:
make test
./asm_test_bonusAssembly routines interact directly with the Linux kernel through syscall instructions, minimizing overhead and dependencies.
All functions strictly follow the System V AMD64 ABI, ensuring compatibility with C code and predictable behavior across different calling contexts.
Provides fundamental linked list operations and memory/string utilities suitable for runtime use in low-level programs.
This project highlights your expertise in:
- Low-level C/C++ programming
- Runtime library implementation
- System call and ABI conventions
- Performance and memory optimization
It is particularly relevant for roles such as:
- Systems Programmer
- Embedded C/C++ Developer
- Runtime/Compiler Engineer
- Operating System or Kernel Developer
This project is licensed under the MIT License. See the LICENSE file for details.