x86 Assembly Language From Ground Up

x86 Assembly Language From Ground Up

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 15.5 Hours | 6.29 GB

Build over 50 Assembly Programs – x86 Instruction Set, SIMD, Image Processing Algorithms, DSP Routines, MMX, SSE, AVX

Welcome to the x86 Assembly Programming From Ground Up™ course.

Covering x86 Processor History , Architecture and Practical Assembly Programming, this is the most comprehensive x86 assembly course online.

I’ll take you step-by-step through engaging and fun video tutorials and teach you everything you need to know to succeed as an x86 developer.

By the end of this course you will master the x86 Core Instruction Set, the x86 MMX Extension Instruction Set, the x86 Streaming SIMD Extension (SSE) Instruction Set and the x86 Advanced Vector Extension (AVX ) Instruction Set. You will be able to develop complex Image Processing Algorithms in x86 Assembly. You will be able to develop complex mathematical algorithms in x86 assembly .You will also be able to write robust programs that mix C++ and x86 Assembly files.

Furthermore, you will master every day things like navigating arrays, computing the statistical properties of an array such as computing the mean and standard deviation of each row and column. All of this written in assembly language. There is so much more. Please take a look at the full course curriculum.

What you’ll learn

  • Master the x86 Core Instruction Set
  • Understand the coding differences between x86-32 and x86 -64
  • Master the x86 MMX Extension Instruction Set
  • Master the x86 Streaming SIMD Extension (SSE) Instruction Set
  • Master the x86 Advanced Vector Extension (AVX ) Instruction Set
  • Develop Complex Image Processing Algorithms in x86 Assembly
  • Develop Complex Mahtematical Algorithms in x86 Assembly
  • Be able to understand and apply the IEEE- 754 Floating point standard
  • Be able to create Lookup Tables and Jump Tables in x86 Assembly
  • Be able to Write Robust Mixed C/C++ and x86 Assembly Code
  • Master the MASM Assembler Syntax
Table of Contents

Introduction
1 Introduction

Getting Started
2 Setting Up the Development Environment
3 Coding Simple Assembly program
4 Installing a Syntax Highlighter

x86 Processors & Computer Architectures
5 Evolution of Intel Processors
6 Harvard Architecture vs Von Neumann Architecture

The Computing Device
7 Logic Gates
8 From Transistors to Operating Systems
9 Number Systems

The Programmer’s Model
10 Overview of x86 Data Types
11 Basic x86 Microcomputer Design
12 x86 Operating Modes
13 Overview of the x86 Registers
14 Coding One Register to Rule Them All
15 Overview of the x86 Flags
16 Overview of the Floating Point Unit
17 Overview of x86 Memory Models

Introduction to x86 Assembly Language
18 Notice
19 Overview of x86 Integers
20 Introduction to Directives and Instructions
21 Simple x86 Assembly Template
22 Coding Declaring Variables in Assembly
23 Dealing with Data
24 Endianness
25 Notice
26 Coding Mixing CC++ and Assembly

Data Transfer Instructions
27 Operand Types
28 Overview of the MOV Instruction
29 Understanding Direct – Offset Operands
30 Memory Addressing Modes

Arithmetic Instructions
31 Notice
32 The Increment and Decrement Instructions
33 The Addition and Subtraction Instructions
34 Data Operators and Directives
35 Coding Summing Array Elements
36 Coding Scanning an Array
37 Coding Using Pointers and Typedef

Conditional Branching
38 The Jump and Loop Instructions
39 Logic Instructions
40 Condition Jump Instructions
41 Instruction Operands

The Nature of Mixing CC++ and Assembly
42 Notice
43 Coding Computing the Sum of an Array
44 Coding Computing Signed Multiplication and Division
45 Coding Understanding CC++ Calling Conventions
46 Coding Experimenting with different Addressing Modes
47 Coding Declaring Global Variables in CC++ and using them in Assembly
48 Coding Experimenting with Conditional Codes

Working with Arrays
49 Coding Iterating through Array Elements
50 Coding Array Elements Square
51 Coding Working with 2-Dimensional Arrays
52 Coding Computing the Sum of Rows and Columns of a 2-Dimensional Array

Working with Strings
53 Coding Copying Strings from one Variable to another
54 Coding Creating a Character Search Algorithm

Programming with the Floating -Point Unit (FPU) Registers
55 Overview of the x86 FPU
56 Coding Writing a temperature conversion program using the FPU
57 Coding Developing the Sphere Computation Algorithm
58 Coding Processing Floating-Point Arrays with FPU Instructions
59 Coding Computing Min and Max of Single-Precision Floating Point Arrays
60 Coding Developing Algorithms with x86 FPU Transcendental Instructions
61 Coding Developing the Least Squares Algorithm

Programming with the x86 MMX Extensions
62 Coding SIMD Arithmetic with Packed Data using MMX Registers (Part I)
63 Coding SIMD Arithmetic with Packed Data using MMX Registers (Part II)
64 Coding Shift Operations with Packed Data using MMX Registers
65 Coding Understanding MMX Multiplication

Programming with the x86 SSE Extentsions
66 History of SSE
67 The SSE Execution Environment
68 Coding Understanding SSE Floating-Point Arithmetic
69 Coding Developing the Sphere Algorithm using SSE Instructions
70 Coding SSE Packed Integer Arithmetic

Programming with the x86 Advanced Vector (AVX) Extensions
71 History of AVX

Closing
72 Closing Remarks