Skip to content

cmtdrt/assembly-learning

Repository files navigation

Assembly learning

This repo contains notes and examples to setup and start learning assembly language.


Q&A:

  • Q: Why are you learning assembly in 2026 ?
  • A: I just never got the chance to learn low level programming languages like C or C++ in my first years of programming and I felt like I was missing out a lot on how things work under the hood. So I figured—why not go all the way down to assembly and fill that gap?

Steps to setup everything locally

1) Build the Docker image

docker build --platform linux/amd64 -t asm-env .

Or using make:

make dbuild

2) Run the container

docker run --platform linux/amd64 -it --rm -v $(pwd):/workspace asm-env

Or using make:

make dstart
  • Important: --rm removes the container after it exits.

3) Check the architecture in the environment

uname -m
  • Expected: x86_64.

4) Compile (.asm.o)

Takes a .asm file and compiles it into machine code, producing an object file .o.

nasm -f elf64 02-hello/main.asm -o hello.o

Or using Make:

make compile SRC=02-hello/main.asm OUT=hello.o

5) Link (.o → executable)

Turns the .o file into an executable program.

ld hello.o -o hello

Or using Make:

make link SRC=hello.o OUT=hello

6) Run the program

./hello

About

My journey learning assembly (x86_64)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors