A manual memory allocator written in NASM win64 assembly. The design is based off of the Rust program I made. The allocator is a simple freelist allocator that allocates memory in a single contiguous block. The allocator is able to allocate and deallocate memory while avoiding fragmentation.
- global.asm: Contains required global variables and functions (only _exit is used).
- io.asm simplifies input/output in assembly, used for debugging.
- main.asm: Main program that uses the memory allocator.
- stdmem.asm: Implementation of the memory allocator. Contains functions for allocating, deallocating, and initializing memory. Also contains functions for debugging.
- main.sh: Shell script that assembles and links the program. (NOTE: Use intended for WSL, may need to change for other systems)
This project is licensed under the MIT License.