Skip to content

Latest commit

 

History

History
28 lines (25 loc) · 1.86 KB

README.md

File metadata and controls

28 lines (25 loc) · 1.86 KB

Full x64 Assembly Course

In this comprehensive tutorial, you will learn the fundamentals of writing 64-bit assembly language, an essential skill for understanding low-level programming and computer architecture. While the primary focus is on 64-bit assembly, much of the knowledge and techniques discussed here can also be applied to 32-bit systems, making this tutorial versatile for various use cases.

This tutorial is specifically tailored for Linux-based environments, ensuring you gain hands-on experience with tools and practices common to this platform. However, if you are using Windows, you can follow along by setting up a Linux-like environment through WSL (Windows Subsystem for Linux) or Cygwin.

To get the most out of this tutorial, you should already have a basic understanding of a compiled programming language such as C, C++, or Rust. These languages will provide a foundation for grasping the concepts and syntax of assembly language, as they share many underlying principles. By the end of this tutorial, you will have a solid understanding of 64-bit assembly and be able to apply it effectively in your projects.

Chapters

  1. Installation
  2. The exit system call
  3. Hello world
  4. Calling from C
  5. Registers
  6. Machine code ❌
  7. Basic Arithmetic ❌
  8. Labels and Unconditional Jumps ❌
  9. Flags, Comparisons and Conditional Jumps ❌
  10. Logical and Bitwise Operations ❌
  11. Data Types, Memory Addressing and the .data Section ❌
  12. The Stack ❌
  13. The call instruction ❌
  14. Calling External Functions ❌
  15. Using the Heap ❌
  16. Special mov instructions ❌
  17. Arithmetics part 2 ❌
  18. Manipulating Strings ❌
  19. Floating point arithmetic ❌
  20. NASM local labels ❌