Skip to content
Go back

Assembly Project Ideas

Updated:  at  04:13 PM

Table of Contents

Open Table of Contents

Intro

Imagine you are in Shanghai.

You’re hungry, you decide to try dumplings. You can’t speak Chinese, so you bring a translator guy along.

You tell him, “I want dumplings,” and he translates the order into Chinese for the store owner. The store owner wraps some dumplings up, and hands them over. Piece of cake, right?

In this scenario:

Now here’s the kicker. What if you want something other than just dumplings?

What if you’d prefer to haggle the price, compliment the taste, or ask the owner how her day’s been? Now, the translator can make mistakes. He might misinterpret your tone, skip details, or not translate the nuance correctly.

So what’s the solution?

Learn Chinese and speak for yourself directly!

That’s exactly what assembly language lets you do. It gives you low-level access to the CPU, letting you fine-tune performance and understand how your instructions run under the hood.

If you’re curious about how computers really work or if you simply enjoy getting some hands-on with bare-metal programming, then these assembly projects are a great place to start.

I’ll be posting projects here, sorted from beginner-friendly to more advanced ones. Feel free to explore whatever you find interesting.

You can also check out the whole project in my repo.

Happy coding!

These projects are work in progress. I regularly update contents and add new material, so don’t forget to check back!

Overview

Project TitleShort Description
Simple HelloSimple Hello World
Below Or AboveChecking a specific number
AdditionAdding two numbers
Input OutputRead the text and write out
Read FileRead the text file
Write FileWrite to the text file
Reverse Stringgnirts a esreveR
RandomGenerate random number (0 - 100)
ServerBasic TCP server
ClientBasic TCP client
Web ScraperSimple Web Scraper

Simple Hello

A very simple hello program, just like starting out in any programming language. This is your first step into the world of low-level programming. No compilers or fancy libraries but raw instructions, system calls, and a direct conversation with the machine.
Skills you’ll gain:

Fetch the code here!

Below Or Above

A simple program that checks if a number entered by the user is below, above, or within a specific range. It’s like a mini decision-maker that shows how logic flows in low-level programming.
Skills you’ll gain:

Fetch the code here!

Addition

A beginner-friendly project that takes two numbers, adds them together, and shows the result. This helps you understand how math works at the register level.
Skills you’ll gain:

Fetch the code here!

Input Output

Reads a user’s input from the terminal and echoes it back. It’s the foundation of interacting with users in CLI-based assembly programs.
Skills you’ll gain:

Fetch the code here!

Read File

This program reads content from a .txt file and prints it to the terminal. It shows how to interact with files on your system through system calls.
Skills you’ll gain:

Fetch the code here!

Write File

This program writes contents to a .txt file. It overwrite the file or create one if not existed. It also shows how to interact with files on your system through system calls.
Skills you’ll gain:

Fetch the code here!

Reverse String

Enter a string and watch it reversed like magic. This teaches how to navigate and manipulate memory, one byte at a time.
Skills you’ll gain:

Fetch the code here!

Random

Generates a random number between 0 and 100. A fun way to explore randomness without high-level libraries. Only with raw CPU and system calls.
Skills you’ll gain:

Fetch the code here!

Server

A basic TCP server that listens on a port and handles simple incoming connections. Writing a server in assembly is easier than you think!
Skills you’ll gain:

Fetch the code here!

Client

A TCP client that connects to a server and sends a message. Complements the server project and completes the full communication loop. (Super easy!)
Skills you’ll gain:

Fetch the code here!

Web Scraper

A low-level web scraper built without high-level languages or libraries, just pure assembly and system calls. It connects to a website, sends an HTTP request, and reads the response directly from the socket. It’s a deeper dive into networking, protocols, and memory handling.
Skills you’ll gain:

Fetch the code here!

References


Spotted a Mistake?
Share this post on:

Previous Post
What the stack is that? (Part 2)
Next Post
What the stack is that? (Part 1)