programProgramming & DevelopmentintermediateFeatured

x86-64 Assembly Programming Bootcamp

Master x86-64 assembly programming in 3 months. Learn low-level programming, registers, memory management, system calls, and debugging with real-world projects.

Duration: 3 months
Mode: online/offline
Language: Hindi/English
View Curriculum

Curriculum

Module 1: Introduction to x86-64 Architecture & Toolchain

2 weeks

Topics Covered:

  • Why Learn Assembly Programming?
  • - Understanding the machine at the hardware level
  • - Performance optimization and debugging
  • - Reverse engineering and security research
  • - Embedded systems and systems programming [citation:1]
  • Computer Architecture Basics
  • - CPU, RAM, and the Von Neumann architecture
  • - Machine code vs Assembly language vs High-level languages
  • - Binary, Hexadecimal, and Number Systems
  • x86-64 Architecture Overview
  • - RISC vs CISC architectures [citation:1]
  • - 64-bit vs 32-bit vs 16-bit modes
  • - The Programmer's Model of x86-64 [citation:3]
  • General Purpose Registers
  • - RAX, RBX, RCX, RDX, RSI, RDI, RSP, RBP, R8-R15
  • - 64-bit (rax), 32-bit (eax), 16-bit (ax), 8-bit (al/ah) sub-registers
  • - Zero-extension rule for 32-bit writes [citation:5]
  • The Stack and Memory Model
  • - Stack pointer (RSP) and Frame pointer (RBP)
  • - Memory addressing modes [base + index*scale + displacement] [citation:5]
  • - Memory latency and cache structure [citation:1]
  • Toolchain Setup
  • - Installing NASM assembler
  • - Installing LD linker and GCC
  • - Installing GDB debugger
  • - Using Docker for consistent environment [citation:7]
  • NASM Syntax vs AT&T Syntax
  • - Intel syntax (NASM): destination, source
  • - NASM directives: section .text, .data, .bss
  • - Comments, global, extern, default rel [citation:5]
  • Executable Creation Process
  • - Assembly → Object file → Linking → Executable
  • - ELF (Executable and Linkable Format) [citation:2]
  • - Sections: .text (code), .data (data), .bss (uninitialized) [citation:5]
  • Your First Assembly Program
  • - Structure of an x86-64 program
  • - syscall instruction and Linux system calls
  • - Hello World with write syscall (syscall number 1) [citation:7]
  • Building and Running Programs
  • - nasm -f elf64 program.asm -o program.o
  • - ld -o program program.o
  • - ./program
  • - Exit codes and syscall number 60 (exit) [citation:7]

Projects:

  • Hello World Program (System Call Version)
  • Simple Exit Program with Different Exit Codes
  • Basic Makefile for Assembly Projects

Module 2: Data Movement, Arithmetic & Logic Instructions

2 weeks

Topics Covered:

  • Data Movement Instructions
  • - mov: Copy data between registers, memory, and immediates
  • - push and pop: Stack operations
  • - lea: Load effective address (pointer arithmetic) [citation:5]
  • Operand Size Specifiers
  • - byte, word, dword, qword for memory operands [citation:5]
  • Declaring Data in .data and .bss
  • - db (byte), dw (word), dd (dword), dq (qword) [citation:5]
  • - times for repeated data
  • - resb, resw, resd, resq for uninitialized data [citation:5]
  • Addressing Modes
  • - Direct addressing [var] with RIP-relative [citation:5]
  • - Register indirect [rax]
  • - Indexed [rax+rbx*4]
  • - Displacement [rbp-8]
  • Arithmetic Instructions
  • - add, sub: Integer addition and subtraction [citation:5]
  • - inc, dec: Increment and decrement
  • - imul: Integer multiplication (two-operand and one-operand)
  • - div, idiv: Division
  • Bitwise Operations
  • - and, or, xor, not: Bitwise logical operations [citation:2]
  • - shl, shr, sal, sar: Shift operations
  • - Bit masks and flags [citation:7]
  • Conversion Instructions
  • - movzx: Move with zero-extension
  • - movsx, movsbq, movswq: Move with sign-extension [citation:10]
  • Understanding the FLAGS Register
  • - Zero Flag (ZF), Sign Flag (SF), Carry Flag (CF), Overflow Flag (OF)

Projects:

  • Basic Calculator (Addition, Subtraction, Multiplication)
  • Bit Manipulation Utility (AND, OR, XOR, NOT operations)
  • Fibonacci Number Calculator (Iterative)

Module 3: Control Flow - Conditionals & Loops

2 weeks

Topics Covered:

  • Comparison Instructions
  • - cmp: Compare two operands (sets FLAGS) [citation:7]
  • - test: Logical AND without modifying destination [citation:7]
  • Conditional Jumps
  • - je, jne: Equal/Not equal
  • - jg, jge: Greater/Greater or equal (signed)
  • - jl, jle: Less/Less or equal (signed)
  • - ja, jae: Above/Above or equal (unsigned)
  • - jb, jbe: Below/Below or equal (unsigned) [citation:5]
  • Unconditional Jumps
  • - jmp: Jump to label
  • - jmp with register or memory [citation:1]
  • Jump Tables
  • - Implementing switch-case logic [citation:1]
  • Loop Implementation
  • - while loop patterns [citation:7]
  • - for loop patterns [citation:7]
  • - loop instruction and loop optimizations [citation:1]
  • Conditional Move
  • - cmovg, cmovl, cmove, etc. (avoiding branches) [citation:1]
  • Common Patterns
  • - if-else logic in assembly
  • - Nested conditionals

Projects:

  • Find Maximum/Minimum in Array
  • Fibonacci Number Calculator (Recursive)
  • Number Guessing Game

Module 4: Functions, Calling Conventions & Stack Management

2 weeks

Topics Covered:

  • Functions in Assembly
  • - call: Function call (pushes return address)
  • - ret: Return from function [citation:7]
  • System V ABI Calling Convention
  • - Arguments: rdi, rsi, rdx, rcx, r8, r9 (in order) [citation:1]
  • - Return value: rax
  • - Callee-saved registers: rbx, rbp, r12-r15 [citation:1]
  • - Caller-saved registers: rax, rcx, rdx, rsi, rdi, r8-r11
  • Stack Frames
  • - Setting up frame with rbp
  • - Local variables on the stack [rbp-x]
  • - Stack alignment (16-byte boundary) [citation:7]
  • Register Preservation
  • - push/pop callee-saved registers
  • - Avoiding register corruption
  • Function Arguments and Return Values
  • - Passing integers and pointers
  • - Returning structures
  • Calling C Library Functions
  • - Using extern declarations
  • - Linking with libc
  • - Calling printf, scanf, etc. [citation:7]
  • Interfacing with C
  • - Writing assembly functions that C can call
  • - Calling assembly from C programs [citation:1]
  • Recursive Functions
  • - Factorial implementation [citation:7]
  • - Stack management in recursion

Projects:

  • String Length Function (strlen implementation)
  • String Compare Function (strcmp implementation)
  • Factorial Program (Recursive Implementation)

Module 5: Working with Strings, Arrays & Memory

2 weeks

Topics Covered:

  • String Processing Instructions
  • - rep, repz, repnz: Repeat prefixes [citation:1]
  • - lods, stos, scas, movs, cmps: String operations [citation:1]
  • - cld, std: Direction flags
  • Working with Arrays
  • - Array indexing and element access [citation:7]
  • - Finding min/max in array [citation:7]
  • - Array iteration patterns
  • Buffer Operations
  • - memcpy implementation [citation:7]
  • - memset implementation [citation:7]
  • - Memory copying and filling
  • Pointer Arithmetic
  • - Using pointers to traverse arrays and strings [citation:7]
  • - Pointer manipulation with lea
  • Command Line Arguments
  • - argc and argv on the stack at startup [citation:7]
  • - Iterating through argv
  • - Printing arguments

Projects:

  • String Length Utility
  • Array Sorting Program (Bubble Sort/Selection Sort)
  • Command Line Argument Parser

Module 6: Linux System Calls & File I/O

2 weeks

Topics Covered:

  • System Call Overview
  • - The syscall instruction
  • - System call numbers (write=1, read=0, open=2, close=3, exit=60) [citation:7]
  • - Arguments in rdi, rsi, rdx, r10, r8, r9
  • - Return value in rax
  • File Operations
  • - open: Open file (syscall 2) [citation:7]
  • - read: Read from file (syscall 0)
  • - write: Write to file (syscall 1)
  • - close: Close file descriptor (syscall 3)
  • File Descriptors
  • - stdin=0, stdout=1, stderr=2
  • - Error handling with return values
  • File Copy Utility Implementation [citation:3]
  • - Opening source and destination files
  • - Reading and writing in chunks
  • - Closing files
  • Process Creation
  • - fork: Create child process (syscall 57)
  • - execve: Execute program (syscall 59)
  • - wait: Wait for child (syscall 61)
  • Network I/O (TCP) [citation:3]
  • - socket, connect, send, recv
  • - Building a TCP client/server

Projects:

  • File Copy Utility (like cp command)
  • File Reader (like cat command)
  • Simple TCP Client Program

Module 7: Advanced Topics - Bit Manipulation, Structures & Heap

2 weeks

Topics Covered:

  • Advanced Bit Manipulation [citation:7]
  • - Counting bits (popcount)
  • - Bit extraction and insertion
  • - Rotations
  • Structures in Assembly [citation:7]
  • - Defining C-like structs
  • - Calculating field offsets
  • - Accessing struct fields
  • - Arrays of structures
  • - Passing structures to functions
  • Multi-File Assembly Projects [citation:7]
  • - global and extern directives
  • - Linking multiple object files
  • - Code organization and modularity
  • Heap Allocation [citation:7]
  • - Understanding heap vs stack
  • - brk system call for heap allocation
  • - Implementing basic malloc and free
  • - Memory management fundamentals
  • Performance Optimization [citation:1]
  • - Profiling assembly code
  • - Understanding latency numbers [citation:1]
  • - Optimizing loops and data access

Projects:

  • Hash Table Implementation (Key-Value Store) [citation:7]
  • Simple Memory Allocator (malloc/free) [citation:7]
  • Multi-File Calculator Project

Module 8: SIMD, Floating Point & Advanced Topics

2 weeks

Topics Covered:

  • SIMD (Single Instruction, Multiple Data) [citation:1]
  • - XMM registers and SSE instructions
  • - YMM registers and AVX instructions
  • - Packed vs scalar operations
  • - SIMD optimization for performance
  • Floating Point Operations [citation:1]
  • - Using XMM registers for floats/doubles
  • - movss, movsd for scalar floats
  • - addss, addsd, subss, subsd, mulss, mulsd
  • - FPU stack (ST registers)
  • Interrupts and Signals [citation:1]
  • - Understanding interrupts
  • - Signal handling in assembly
  • - Exceptions and fault handling
  • Debugging and Reverse Engineering [citation:1]
  • - Analyzing stripped vs non-stripped binaries [citation:2]
  • - Using readelf, nm, objdump [citation:1]
  • - Basic reverse engineering concepts [citation:1]
  • - Binary analysis workflow [citation:2]
  • Reading Disassembly [citation:2]
  • - Converting machine code back to assembly
  • - Recognizing common code patterns
  • - Understanding function prologue/epilogue

Projects:

  • SIMD Vector Addition Program
  • Floating Point Calculator
  • Binary Analysis with objdump and readelf

Module 9: Capstone Projects & Career Preparation

2 weeks

Topics Covered:

  • Capstone Project Development
  • - Problem framing and requirements
  • - Design and implementation
  • - Testing and debugging
  • - Documentation
  • Capstone Project Options:
  • - Linux 'cat' Utility Clone [citation:3]
  • - TCP Client-Server Program [citation:3]
  • - Hash Table Key-Value Store [citation:7]
  • - Simple Memory Allocator [citation:7]
  • - Assembly Library for C Programs
  • Debugging with GDB
  • - Setting breakpoints
  • - Stepping through instructions
  • - Examining registers and memory [citation:7]
  • - Using layout asm, layout regs
  • System Call Tracing
  • - Using strace to debug syscalls [citation:7]
  • - Understanding program behavior
  • Career Preparation
  • - Resume building for systems/embedded roles
  • - GitHub portfolio
  • - Interview preparation for low-level roles
  • - C/Assembly interview questions
  • Further Learning Paths
  • - Embedded systems programming
  • - Reverse engineering and malware analysis
  • - Compiler design
  • - Operating systems development

Projects:

  • Capstone: Linux 'cat' Utility Implementation
  • Capstone: TCP Client-Server Application
  • Capstone: Complete Hash Table Library

Learning Objectives

  • Understand x86-64 architecture, registers, memory addressing, and the CPU execution model
  • Write assembly programs using NASM syntax with loops, conditionals, and functions
  • Master System V ABI calling conventions and integrate with C libraries
  • Perform Linux system calls for file I/O, memory management, and process control
  • Debug assembly programs using GDB, strace, and objdump
  • Implement data structures and algorithms in assembly
  • Build 8+ projects including utilities, file processors, and system tools
  • Understand binary formats (ELF) and basic reverse engineering concepts

Why Choose x86-64 Assembly Programming Bootcamp?

The x86-64 Assembly Programming Bootcamp is an intensive 3-month program designed to take you from basic programming knowledge to a skilled low-level systems programmer. This bootcamp covers everything from architecture fundamentals to advanced topics with a focus on practical, hands-on learning on Linux [citation:7].

  • Master Low-Level Programming: Understand exactly how computers execute instructions
  • Complete x86-64 Coverage: Registers, memory, system calls, SIMD, and floating point [citation:1]
  • 8+ Real-World Projects: Build utilities, file processors, and system tools
  • Industry-Standard Tools: NASM assembler, GDB debugger, Linux system calls [citation:1]
  • Portfolio Focus: Projects suitable for systems programming and embedded roles
  • Career Support: Resume building, interview preparation

Who Should Enroll?

  • C/C++ Developers wanting to understand low-level code generation
  • Game Developers needing performance-critical code understanding
  • Security Researchers learning reverse engineering and malware analysis [citation:2]
  • Embedded Systems Developers working with low-level hardware
  • Computer Science Students studying architecture and operating systems [citation:3]
  • Anyone passionate about understanding computers at the hardware level [citation:6]

Prerequisite: Basic programming experience in any language (C, C++, Python, Java, etc.). Understanding of functions, loops, and conditionals is required.

What You'll Build

Foundation Projects

  • Hello World Program
  • Basic Calculator
  • Fibonacci Number Calculator
  • Number Guessing Game
  • Array Sorting Program
  • Command Line Argument Parser

Data Manipulation Projects

  • String Length Utility
  • String Compare Function
  • File Copy Utility
  • Bit Manipulation Utility

Advanced Projects

  • Hash Table Implementation [citation:7]
  • Simple Memory Allocator [citation:7]
  • SIMD Vector Addition
  • TCP Client/Server Application [citation:3]

Capstone Projects

  • Linux 'cat' Utility Clone
  • TCP Client-Server Application
  • Complete Hash Table Library

Career Opportunities

Entry-Level (₹4-8 LPA)

  • Junior Systems Programmer
  • Embedded Software Engineer (Entry)
  • Firmware Developer Trainee
  • Performance Engineer (Entry)

Mid-Level (₹8-15 LPA)

  • Systems Software Engineer
  • Embedded Systems Engineer
  • Game Engine Developer
  • Security Analyst

Senior-Level (₹15-25+ LPA)

  • Senior Systems Engineer
  • Compiler Engineer
  • Operating Systems Developer
  • Reverse Engineer/Exploit Developer

Top Hiring Companies

  • Semiconductor: Intel, AMD, ARM, Qualcomm
  • Embedded: Bosch, Siemens, Samsung, Apple
  • Gaming: Ubisoft, Electronic Arts, Rockstar
  • Security: CrowdStrike, Palo Alto, FireEye
  • Tech: Microsoft, Google, Amazon, Meta
  • Automotive: Tesla, BMW, Mercedes-Benz

Learning Experience

Learning Format

  • Duration: 3 months
  • Mode: Online/Offline
  • Schedule: 10-12 hours per week
  • 9 modules from fundamentals to advanced projects

Learning Methodology

  • 20% Theory & Concepts
  • 80% Hands-on Coding & Projects
  • Weekly assignments and coding exercises
  • Capstone projects with mentor evaluation
  • Debugging practice with GDB [citation:7]

Course Includes

  • Course Material: Notes, code examples, project templates
  • Development Environment: Docker/Linux setup guide [citation:7]
  • Tools: NASM, GDB, LD, objdump, readelf
  • Assessments: Weekly quizzes and project evaluations
  • Certification: x86-64 Assembly Bootcamp Certificate
  • Job Support: Resume, GitHub portfolio, interview preparation
  • Community: Alumni network and peer support

Fee Structure

Course Fee: ₹15,000 (3 months)

Payment Options:

  1. One-time Payment: ₹12,000 (₹3,000 discount)
  2. Monthly: ₹4,000 × 3

Frequently Asked Questions

Do I need prior programming experience?

Yes, basic programming experience is required. You should understand variables, functions, loops, and conditionals in any language (C, C++, Python, Java, etc.). This is not a beginner course for first-time programmers. [citation:1]

Why learn x86-64 assembly in 2026?

Assembly programming gives you an unparalleled understanding of how computers work at the hardware level. It's essential for systems programming, performance optimization, reverse engineering, embedded systems, and security research. Understanding assembly makes you a better programmer in any high-level language. [citation:6]

What tools will I use?

We use NASM (Netwide Assembler) for Intel syntax assembly, LD for linking, GDB for debugging, and strace for system call tracing. Development is on Linux (using Docker for a consistent environment). [citation:7]

Is this for Windows or Linux?

This bootcamp focuses on x86-64 assembly programming on Linux. Linux is the primary platform for systems programming and provides the most straightforward toolchain. Windows users can use WSL or Docker. [citation:7]

What's the difference between Intel and AT&T syntax?

We use Intel syntax (NASM) which is more commonly used for pure assembly programming. The main differences are operand order (destination, source for Intel) and syntax conventions. Most reverse engineering tools also use Intel syntax. [citation:5]

Will this help me learn reverse engineering?

Yes. Understanding assembly is the foundation of reverse engineering. The course covers reading disassembly, using objdump, and working with ELF binaries. Many students use this as a stepping stone to reverse engineering and malware analysis. [citation:2]

Do I need a specific laptop?

Any modern x86-64 computer will work. Most laptops and desktops use x86-64 processors. The course uses Docker for a consistent Linux environment, so Windows, macOS, and Linux are all supported. [citation:7]

Can I get a job after this course?

Yes. Assembly skills are highly valued in systems programming, embedded development, game development, and security roles. The course builds a strong portfolio with 8+ projects. You'll be prepared for interview questions on low-level programming. [citation:3]

Will I get a certificate?

Yes, you will receive an x86-64 Assembly Programming Bootcamp Certificate upon successful completion of the program and all projects.

What is the weekly time commitment?

You should expect to spend 10-12 hours per week on lectures, assignments, and projects. Assembly programming requires focused practice. [citation:7]

Tags

Assembly Programmingx86-64Low-Level ProgrammingNASMLinuxGDBSystems Programming