Phoenix TS

Assembly Language Programming Training

This training course will provide professionals with an introduction to assembly language programming skills.

Course Overview

Our four-day, instructor-led Assembly Language Programming Training course will teach developers to convert to machine code using an assembler. Participants will learn to do the following:

  • Obtain deeper understanding of the underlying platform
  • Understand binary arithmetic and logic operations
  • Create elegant and efficient code in Assembly language
  • Understand how to link Assembly code to outer world
  • Obtain in-depth understanding of relevant internal mechanisms of Intel CPU
  • Write stable, efficient and elegant patches for running processes


Currently, there are no public classes scheduled. Please contact a Phoenix TS Training Consultant to discuss hosting a private class at 240-667-7757.


Not seeing a good fit?

Let us know. Our team of instructional designers, curriculum developers, and subject matter experts can create a custom course for you.

Contact Us

Learn more about custom training

Course Outline

Intel Architecture

  • Intel Architecture
  • Processor registers

Setting Up a Development Environment

  • Setting up a development environment
  • Microsoft macro assembler
  • GNU assembler (GAS)
  • Flat assembler

Intel Instruction Set Architecture (ISA)

  • Assembly source template
  • Data types and their definitions
  • A debugger
  • The instruction set summary

Memory Addressing Modes

  • Addressing code
  • Addressing data
  • Far pointers

Parallel Data Processing

  • SSE Biorhythm calculator
  • AVX-512

Macro Instructions

  • What are macro instructions?
  • An introduction to calling conventions
  • A note on flat assembler’s macro capabilities
  • Macro instructions in MASM and GAS
  • Other assembler directives (FASM specific)

Data Structures

  • Arrays
  • Structures
  • Linked lists
  • Trees
  • Sparse matrices
  • Graphs

Mixing Modules written in Assembly and Those written in High Level Languages

  • Crypto Core
  • Interfacing with C/C++
  • Assembly and managed code

Operating System Interface

  • The rings
  • System call
  • Using libraries

Patching Legacy Code

  • The executable
  • The issue
  • PE files
  • ELF executables

Oh, Almost Forgot

  • Protecting the code
  • A bit of kernel space
Subscribe now

Get new class alerts, promotions, and blog posts