x86-64 Assembly Programming
This course is an introduction to assembly programming for the x86-64bit architecture. Emphasis is placed on best, current practices and methods. Students will write extensive code as part of the course.
Audience
This course is suitable for developers or others with moderate experience in programming a compiled language, such as C, C++, Rust, or Fortran. This course is not designed for students who are new to programming.
PREREQUISITES
Students should have some previous programming experience, such as C, C++, or Rust. They should be able to write conditionals, loops, and functions, do some basic debugging, and write a simple program that makes use of these skills.
Introduction to x86
● Why Learn Assembly?
● Prerequisites
● History
● Terminology
● Optimization & Intuition
Executable Programs
● End-to-End Process
● Executable Formats
● Sections
Tools
● Build Tools
● Reversing Tools
● Hello World
CPU
● RISC/CISC Architectures
● GPUs
● Pipelining
● CPU Modes
Registers
● Intel Architecture History
● Register Descriptions
● Callee-Saved Registers
Memory and Latency
● Memory Structure
● Memory Pages
● Caches
● Latency Numbers Every Programmer Should Know
The Two Major Syntaxes
● Intel
● AT&T
● Comments
● Directives
Assignment
● Indirect Addressing
● Load Effective Address
● Segment Offsets
● RIP-Relative Addressing
● Sign Extension
Arithmetic
● No Operation
● Basic Operations
● Bitwise Operators
Conditionals
● Condition Flags
● Condition Codes
● Jumps
● Conditional Moves
● Jump Tables
Loops
● Jump and Loop Optimizations
● Loop Instructions
Functions
● Stack Space
● Base Pointer, Stack Pointer
● Caller- and Callee-Saved Registers
● x64 ABI
● IA-32 ABI
● Return Types
● System Calls
Floats
● ST Use
● XMM Use
Strings
● String Instructions
● String Instruction Prefixes
SIMD
● Concepts
● Packed Data
● Data Alignment
● SIMD Instructions
Is there a discount available for current students?
UMBC students and alumni, as well as students who have previously taken a public training course with UMBC Training Centers are eligible for a 10% discount, capped at $250. Please provide a copy of your UMBC student ID or an unofficial transcript or the name of the UMBC Training Centers course you have completed. Online courses are excluded from this offer.
What is the cancellation and refund policy?
Student will receive a refund of paid registration fees only if UMBC Training Centers receives a notice of cancellation at least 10 business days prior to the class start date for classes or the exam date for exams.