0xAX/asm: A Comprehensive Guide to Linux x86_64 Assembly

0xAX/asm: A Comprehensive Guide to Linux x86_64 Assembly

Summary

The 0xAX/asm GitHub repository offers an excellent resource for anyone looking to learn assembly programming for Linux x86_64 systems. It provides a series of blog posts covering fundamental concepts, from processor architecture to system calls and floating-point arithmetic. This repository is designed to be accessible to both experienced programmers and newcomers to assembly language.

Repository Info

Updated on October 12, 2025
View on GitHub

Tags

Click on any tag to explore related repositories

Introduction

The 0xAX/asm repository is a highly-rated educational resource on GitHub, dedicated to teaching assembly language programming specifically for Linux x86_64 architectures. Authored by @0xAX, it provides a structured series of blog posts that guide learners through the intricacies of low-level programming. With over 3,200 stars, this project is a testament to its quality and utility for the developer community.

Installation

To run the code examples from the 0xAX/asm repository, you will need the following tools installed on a 64-bit Linux distribution:

  • 64-bit Linux distribution: The operating system environment.
  • make: A utility for managing and compiling projects.
  • NASM: The Netwide Assembler, used for assembling the assembly code.
  • binutils: A collection of binary tools, including a linker (ld) and debugger (gdb).

Examples

The core of the 0xAX/asm repository is its series of detailed blog posts, each focusing on a specific aspect of assembly programming. These posts cover a wide range of topics, including:

  • Basic description of the x86_64 processor architecture.
  • How to write, build, and run simple assembly programs.
  • The main components of a Linux program.
  • Basics of memory allocation, stack, and heap.
  • System calls and program interaction with the operating system.
  • Representation of floating-point numbers in memory.
  • Interacting with assembly code from C programs.

Each part builds upon the previous, offering a progressive learning path. For instance, you can start with Part 1. Introduction and continue through the series.

Why use it

This repository stands out as an excellent resource for several reasons. It offers a clear, well-structured approach to learning a complex subject like assembly language. The content is practical, focusing on Linux x86_64, which is highly relevant for system programming, reverse engineering, and performance optimization. The inclusion of examples and a step-by-step guide makes it accessible for self-learners. Furthermore, the availability of translations in multiple languages broadens its reach, making it a valuable educational tool for a global audience.

Links

Explore the 0xAX/asm repository and start your journey into assembly programming today: