/assembly-playground

Random code snippets used to learn x86_64 assembly language

Primary LanguageAssembly

Assembly Playground

Random code snippets I use to learn x86_64 assembly language

How to compile and run

These are instructions for compiling and running on a Linux x86_64 machine

  1. Install nasm using your packet manager (e.g. pacman, apt, etc.)
  2. Compile object: nasm -f elf64 -o filename.o filename.s - filename.s is the input file, filename.o will be the generated object file
  3. Link object to executable: ld filename.o -o execname
  4. Run: ./execname

Files

  • hello.s - Simple "Hello, world!" script
  • counter.s - Counts from 0 to 9 and prints to stdout. First use of multiple calls and loops
  • fibonacci.s - Prints Fibonacci numbers from 0 to 10000. Using functions, macros and constants

Learning resources

Compared to high level languages, Assembly languages seem to have bits and pieces of knowledge very scattered around the web. I haven't found (so far) a very comprehensive learning support, but here are some helpful links I've come across: