This is a collection of mini NASM Linux 32-bit assembly projects I wrote to teach myself this language
projects/contains individual.asmfiles for each mini programbin/compiled executables (git ignored)build/intermediate object files (git ignored)Makefilethe build filecheatsheet.mdA cheatsheet / notes about asmREADME.mdThis file
- NASM assembler
- GNU linker (ld)
- Linux or WSL2 environment
Use make from the root directory
make # Build all projects
make clean # Remove executables and object filesExecutables are placed in the bin/ directory.
A CI workflow is included to build all projects on push and pull requests using GitHub-hosted Ubuntu runners.
MIT License
A simple hello world program
It prints "Hello, World!"
A print program that prints two messages
This one prompts the user for an input, and prints said input.
This program prompts the user for its age, and checks if it's over or under 18 and prints a message accordingly.
This program does almost the same as print.asm, but uses a subroutine for it
- Robust string-to-integer parser with validation
- Simple calculator with multiple operations
- Countdown timer with loop-based delay
- Echo program that loops until "exit" is typed
- Lowercase to uppercase converter
- Password checker with hardcoded credentials
- Formatted output in hexadecimal or binary
- Factorial and Fibonacci implementations