Skip to content

Latest commit

 

History

History
73 lines (46 loc) · 1.73 KB

File metadata and controls

73 lines (46 loc) · 1.73 KB

AssemblyExperiments

This is a collection of mini NASM Linux 32-bit assembly projects I wrote to teach myself this language

Structure

  • projects/ contains individual .asm files for each mini program
  • bin/ compiled executables (git ignored)
  • build/ intermediate object files (git ignored)
  • Makefile the build file
  • cheatsheet.md A cheatsheet / notes about asm
  • README.md This file

Requirements

  • NASM assembler
  • GNU linker (ld)
  • Linux or WSL2 environment

Building

Use make from the root directory

make		# Build all projects
make clean	# Remove executables and object files

Executables are placed in the bin/ directory.

GitHub Actions

A CI workflow is included to build all projects on push and pull requests using GitHub-hosted Ubuntu runners.

License

MIT License

Projects

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

Future Projects

  • 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