- 1. Introduction 2m 3s
- 2. Getting started and installation 2m 35s
- 3. Your first hello world program 13m 10s
Mastering 64-bit Assembly Language Programming with NASM and C Integration
About this course
Unlock the power of low-level programming and learn how computers truly execute your code.
In this comprehensive course, you’ll master x86-64 Assembly Language step by step using the NASM assembler, while also learning how to interface Assembly with the C programming language for real-world applications.
We’ll begin with the absolute basics — installing NASM, setting up your environment, and writing your first “Hello World” program. From there, you’ll explore the fundamentals that drive every CPU:
How registers, memory, and the stack actually work
The MOV, JMP, CALL, and RET instructions explained in detail
Conditional logic and comparison with CMP, JE/JNE/JG/JL
Mathematical operations — ADD, SUB, MUL, DIV
Floating point operations
As your understanding grows, you’ll learn to mix Assembly with C building functions, exchanging data, and accessing pointers, arrays, and structures directly at the hardware level.
You’ll even learn how to create full 64-bit programs that call and return values across language boundaries, just like modern compilers do.
By the end of this course, you’ll be able to:
Write and debug 64-bit Assembly programs from scratch
Understand how compilers translate high-level code into Assembly
Build mixed C and Assembly projects that run on Linux or Windows
Perform arithmetic and floating-point operations at the register level
Optimize low-level code for performance and precision
Whether you’re an operating-system developer, compiler engineer, embedded programmer, or simply curious about how software really works beneath the surface — this course will give you a deep, practical understanding of Assembly language and how it drives everything else in computing.
What you'll learn
- Unlock the power of low-level programming and learn how computers truly execute your code.
- In this comprehensive course, you’ll master x86-64 Assembly Language step by step using the NASM assembler, while also learning how to interface Assembly with the C programming language for real-world applications.
- We’ll begin with the absolute basics — installing NASM, setting up your environment, and writing your first “Hello World” program.
- From there, you’ll explore the fundamentals that drive every CPU:
Curriculum
28 Lessons • 5H 7M- 1. Assembly Language Execution Flow Explained 5m 54s
- 2. What are registers 16m 44s
- 3. MOV instruction 4m 54s
- 4. JMP instruction 3m 5s
- 5. What is the stack 18m 10s
- 6. Call and ret instructions 7m 48s
- 7. CMP Compare instruction and conditional jumps JE, JNE, JG, JB Instructions 5m 35s
- 8. Mathematical instructions add, sub, mul, div 26m 10s
- 1. Assembly Language Generated By C Full Tutorial 24m
- 2. Simple test program 25m 48s
- 3. Mixing C with Assembly Code - Building a SUM function in assembly and calling from C 4m 45s
- 4. Copying memory to another location using RDI and RSI 7m 8s
- 5. Accessing C pointers from assembly 12m 18s
- 6. Accessing C structures from assembly 13m 37s
- 7. Accessing C arrays from assembly 5m 32s
- 8. GUI Programs In Assembly Language 25m 25s
- 9. Calculator program 13m 9s
- 10. Floating point numbers 17m 1s
- 1. 32-bit assembly programs development overview 3m 47s
- 2. 32 bit assembly calling a C sum function example 6m 56s
- 3. 32 bit assembly creating a sum function 7m 32s
- 4. 32 bit assembly accessing C pointer function arguments 7m 26s
- 5. 32 bit assembly accessing C structures passed by value 11m 1s
- 6. 32 bit assembly accessing C structures passed by value that have alignment requirements 5m 8s
- 7. 32 bit assembly floating point operations 10m 25s
- 0.00 instructor rating
- 1 courses
- Systems students worldwide
Daniel McCarthy
Learn from DragonZap instructors with practical, build-first lessons focused on systems, low-level programming, compilers, kernels, and real-world engineering fundamentals.
Student reviews
The difference between asm 32 and asm 64 is clear for me now, as well as essentials of Assembly language itself. Thank you !