- Introduction
- Setting Up the Development Environment
- Coding : Simple Assembly program
- Installing a Syntax Highlighter
- Evolution of Intel Processors
- Harvard Architecture vs Von Neumann Architecture
- Logic Gates
- From Transistors to Operating Systems
- Number Systems
- Overview of x86 Data Types
- Basic x86 Microcomputer Design
- x86 Operating Modes
- Overview of the x86 Registers
- Coding : One Register to Rule Them All
- Overview of the x86 Flags
- Overview of the Floating Point Unit
- Overview of x86 Memory Models
- Notice
- Overview of x86 Integers
- Introduction to Directives and Instructions
- Simple x86 Assembly Template
- Coding : Declaring Variables in Assembly
- Dealing with Data
- Endianness
- Notice
- Coding : Mixing C/C++ and Assembly
- Operand Types
- Overview of the MOV Instruction
- Understanding Direct - Offset Operands
- Memory Addressing Modes
- Notice
- The Increment and Decrement Instructions
- The Addition and Subtraction Instructions
- Data Operators and Directives
- Coding : Summing Array Elements
- Coding : Scanning an Array
- Coding : Using Pointers and Typedef
- The Jump and Loop Instructions
- Logic Instructions
- Condition Jump Instructions
- Instruction Operands
- Notice
- Coding : Computing the Sum of an Array
- Coding : Computing Signed Multiplication and Division
- Coding : Understanding C/C++ Calling Conventions
- Coding : Experimenting with different Addressing Modes
- Coding : Declaring Global Variables in C/C++ and using them in Assembly
- Coding : Experimenting with Conditional Codes
- Coding : Iterating through Array Elements
- Coding : Array Elements Square
- Coding : Working with 2-Dimensional Arrays
- Coding : Computing the Sum of Rows and Columns of a 2-Dimensional Array
- Coding : Copying Strings from one Variable to another
- Coding :Creating a Character Search Algorithm
- Overview of the x86 FPU
- Overview of the FPU Instruction Set
- Case Study - Temperature Conversion
- Coding : Writing a temperature conversion program using the FPU
- Coding : Developing the Sphere Computation Algorithm
- Coding : Processing Floating-Point Arrays with FPU Instructions
- Coding : Computing Min and Max of Single-Precision Floating Point Arrays
- Coding : Developing Algorithms with x86 FPU Transcendental Instructions
- Coding : Developing the Least Squares Algorithm
- Introduction to MMX
- Overview of the MMX Instruction Set
- Coding : SIMD Arithmetic with Packed Data using MMX Registers (Part I)
- Coding : SIMD Arithmetic with Packed Data using MMX Registers (Part II)
- Coding : Shift Operations with Packed Data using MMX Registers
- Coding : Understanding MMX Multiplication
- Introduction to SSE
- Overview of the SSE Instruction Set
- Coding : Understanding SSE Floating-Point Arithmetic
- Coding : Developing the Sphere Algorithm using SSE Instructions
- Coding : SSE Packed Integer Arithmetic
- History of AVX
- The AVX Execution Environment
- Coding : Understanding AVX Floating Point Arithmetic
- Coding : Understanding AVX Packed Integer Arithmetic
- Closing Remarks