💻

Introduction to Assembly Language

Free · 📖 31 lessons

Introduction to Assembly Language teaches x86-64 assembly programming from the ground up using the GNU Assembler (GAS) and GCC on Linux. Students learn how the CPU executes instructions, how memory and registers work, and how to write real programs using system calls and C library functions. The course covers data declarations, arithmetic, loops, the call stack, arrays, strings, and debugging with GDB — finishing with mixed-language C and Assembly programming and a look at how the Linux process model works under the hood.

← Back to Courses

Course Content

31 lessons
Module 1: Foundations of Assembly Language 5 items
1.1
What Is Assembly Language?
Video
1.2
Binary and Hexadecimal Numbers
Video
1.3
The x86-64 Architecture
Video
1.4
Your Linux Development Environment
Video
1.5
Set Up and Run Your First Assembly Program
Lab
Module 2: Structure of a GAS Program 4 items
2.1
Program Sections and Entry Points
Video
2.2
Declaring Data
Video
2.3
Registers and Moving Data
Video
2.4
Sections, Data, and Registers
Lab
Module 3: Memory Addressing and Arithmetic 4 items
3.1
Memory Addressing
Video
3.2
Integer Arithmetic
Video
3.3
Comparisons and Branching
Video
3.4
Arithmetic and Conditional Jumps
Lab
Module 4: Loops, the Stack, and Procedures 4 items
4.1
Loops and Decision Logic
Video
4.2
The Stack
Video
4.3
Writing Procedures
Video
4.4
Loops and Procedures
Lab
Module 5: Arrays, Strings, and Debugging 5 items
5.1
Arrays and Indexed Addressing
Video
5.2
String Processing
Video
5.3
Mastering GDB
Video
5.4
Arrays, Strings, and GDB
Lab
5.5
Bubble Sort in Assembly
Lab
Module 6: System Calls and C Integration 4 items
6.1
Linux System Calls
Video
6.2
Calling C Library Functions
Video
6.3
Mixed-Language Programming
Video
6.4
System Calls and C Functions
Lab
Module 7: Advanced Programs and the Modern System 5 items
7.1
Algorithms in Assembly
Video
7.2
Understanding the Linux Process
Video
7.3
Performance, Reverse Engineering, and Next Steps
Video
7.4
Fibonacci Sequence
Lab
7.5
Final Assembly Language Project
Lab