Assembly 101

Learn the language of computers and how to write your own Assembly code.

Training for a team or organization? Contact us about group access.

Assembly 101

Inside the Course

Scroll down to explore the skills you’ll build, the techniques you’ll master, and the requirements to get started.

Start Learning This Course Today

The All-Access Membership gives you unlimited access to this course, hands-on labs, and a complete library of cybersecurity training. Everything you need to build real-world skills is included.

Questions?

If you need clarification on the course or its requirements, simply use the chat button below and our team will assist you.

  • Difficulty: Beginner
  • Duration: 12h 30m
  • Access: Included with Membership

Overview

Welcome to Assembly 101! This course will teach you how computers work down to the lowest level and how to write and read the human readable version of the 1s and 0s they speak in – Assembly. The course starts with an introduction on how computers perform computations using transistors, logic gates and machine code (1s and 0s), then moves on to writing your own assembly programs. Students will start writing x86-16 assembly in a beginner-friendly 8086 emulator to learn the fundamentals and then move on to writing modern x86-64 assembly. 

Key Topics

  • How computers work at a low level
  • Numbering systems: Decimal, Hex and Binary
  • Setting up an assembly development environment
  • x86 Registers, Flags and Pointers
  • x86 Instruction Set
  • Learning x86 fundamentals by writing x86-16 assembly programs
  • Writing modern x86-64 assembly
  • Explore memory safety and learn about writing shellcode and exploiting stack overflows.

 

Prerequisites

Programming 100: Fundamentals and Linux 100: Fundamentals, or equivalent knowledge!

Students should have a basic understanding and familiarity of programming with any high-level language.

 

Objectives

Understand How Computers Work:

  • Understand how computers work at a low-level.

Learn Assembly Fundamentals:

  • Learn the fundamentals of x86 assembly.

Create Your Own Assembly Programs:

  • Read and write simple to medium complexity x86 assembly programs. 

System Requirements

Students will need a computer capable of running and x86-64 virtual machine. The first half of the course will use an emulator that can be run on most architectures, however the second half of the course will focus on x86-64 development without the use of an emulator. 

Course Curriculum

  • Introduction
    • Course Introduction
    • Why You Should Learn Assembly
    • Lesson Formats and Where to Get Code Samples
    • Getting Help and Course Discord
  • Intro to Computer Engineering
    • Section Intro
    • Numbering Systems (Decimal, Binary, Hex)
    • How Processors Work
    • Intro to the intel 8086
    • Quiz
  • 8086 Development Setup
    • Downloading Resources
    • Ubuntu VM Setup
    • 8086 Web Emulator Installation
    • 8086 Web Emulator Intro
  • Registers, MOV, and Interrupts
    • 8086 (x86-16) General Purpose Registers
    • Assembly Syntax
    • MOV
    • Code Challenge (0ff0 f00f)
    • Interrupts
    • Quiz
  • Interacting with Memory
    • 8086 Memory Segmentation
    • MOV in/out of Memory
    • Endianness
    • Data Directive
    • Hello World!
    • Pointers
    • The Stack
    • Code Challenge
    • Quiz
  • Arithmetic Operations
    • ADD
    • ADD with Carry Flag
    • SUB
    • Signed Numbers and Borrow Flag
    • MUL
    • DIV
    • Bitwise Boolean Logic
    • Quiz
  • Accepting User Input
    • Accepting Single Char via Keyboard
    • Coding Challenge (Number Input)
    • Accepting Multiple Chars via Keyboard
    • Quiz
  • Conditional Statements
    • CMP
    • JMPs
    • Chaining JMPs
    • Coding Challenge (Number Guessing Game)
    • Quiz
  • Loops
    • Looping
    • Coding Challenge (Looping Number Guessing Game)
    • LODS
    • STOS
    • Coding Challenge (Number Addition)
    • Quiz
  • Functions
    • Functions
    • Coding Challenge (Number Addition DNRY)
    • Quiz
  • x86-16 Capstone Challenge
    • Coding Challenge (The Cyber Mentor Coding Challenge)
    • Quiz
  • Intro to x86-64
    • AMD64 Programmer’s Manual
    • x86-16 to 32 to 64 Register Changes
    • Revisiting helloworld.c
    • Assembling and Linking
    • Using GDB
    • Function Epilogues and Prologues
    • Position Independent Code
    • Syscall
    • Write Syscall
    • Using Make
    • Read Syscall
    • NASM
    • Quiz
  • x86-64 Functions
    • AMD64 System V Application Binary Interface
    • x86-64 Linux ASM Boilerplate
    • Interacting with Memory
    • Memory Alignment
    • Functions and Global Variables
    • Passing Args via Registers
    • Passing Args via Stack
    • Coding Challenge (Don’t Print X)
    • Quiz
  • The Cyber Mentor Coding Challenge – x86-64 Assembly Version
    • Memory Safety
      • Reviewing Stack Overflow Source Code
      • Investigating Stack Overflow with GDB
      • Basic Stack Overflow Exploit
      • Mitigating Stack Overflow Vulnerability
      • Writing Shellcode
      • Avoiding Bad Characters
      • Disabling Memory Corruption Protections
      • Stack Smashing with Shellcode
      • Reversing Shellcode
      • Coding Challenge (Privilege Escalation)
      • Quiz
    • Course Outro

    This Course Is Included in Your All-Access Membership

    One membership gives you ongoing access to Assembly 101, every other paid Academy course, and an active community of learners and mentors in Discord.

    INSTRUCTORS

    Meet Your Instructor

    Learn from industry experts with real-world cybersecurity experience.

    Instructor Andrew Bellini

    Andrew Bellini

    Welcome Everyone! My name is Andrew Bellini and I sometimes go as DigitalAndrew on social media. I’m an electrical engineer by trade with a bachelor’s degree in electrical engineering and am a licensed Professional Engineer (P. Eng) in Ontario, Canada. While my background and the majority of my career has been in electrical engineering, I am also an avid and passionate ethical hacker. In addition to being an instructor I am also a longtime student of TCM, and their courses helped me transition my career to working as a technical trainer for a cybersecurity company.

    In addition to my love for all things ethical hacking, cybersecurity, CTFs and tech I also am a dad, play guitar and am passionate about the outdoors and fishing.

    FAQS

    Common Questions

    Here are a couple of our most commonly asked questions, contact us if you don’t find an answer!

    Can I get a refund if I'm unhappy with my purchase?
    2
    3

    Yes. All courses come with a 24-hour money-back guarantee.

    Will I receive a certificate of completion when I finish a course?
    2
    3

    Yes. All courses come with a certificate of completion.

    Do the courses count as Continuing Education Units (CEUs)?
    2
    3

    Yes. Every certificate of completion comes with the total CEUs earned listed on the certificate.

    What is the All-Access Membership?
    2
    3

    As of July 1st, 2023 TCM Academy transitioned to a monthly subscription model, where you now receive full access to all of the courses on our platform for as long as your subscription remains active.

    What if you already own courses on TCM Academy?
    2
    3

    If you already own a course on our platform, you will continue to own that course. Previously owned courses will not be affected by this change.

    I can see the course, but it won’t load or play. What should I do?
    2
    3

    We use Cloudflare to protect our course platform and unfortunately, it does not play nice with VPNs. If you are experiencing issues, turn off your VPN and try again. If that does not solve the issue, please contact our support team at support@tcm-sec.com and we will help you out.

    This course is included in our All-Access Membership, starting at $29.99/month.

    Get full access to this course and our full course catalog when you enroll in our All-Access Membership.

    Ready to level up your Cybersecurity Career?

    Get unlimited access to every TCM Security Academy course, hands-on lab, and certification pathway with an All-Access Membership. Learn at your own pace, build real-world skills, and take the next step toward a career in cybersecurity.

    PWPA