x86 Assembly Primer for C Programmers
Ivan Sergeev
Date: Jan 22 07:00pm - 09:00pm, Jan 24 07:00pm - 09:00pm in 4-231

A solid grasp of assembly language makes you a better programmer. Understanding
assembly gives you:
* insight into the true cost of high-level language operations (is modulus %
  cheap? when is it and when is it not?)
* a keen understanding of how program memory is managed and manipulated
* ability to debug at the lowest level, which means you can catch the subtlest
  of bugs
* ability to utilize processor-specific instructions that squeeze the most out
  of every clock cycle and available processor features
* the appreciation of time / space advantages that different compiler
  optimization settings can yield
* a fluency with low-level detail that makes it easy to pick up new computer

Come to the x86 Assembly Primer and get a full introduction into x86 assembly
language, program memory, stack frames, system calls, the role of libc, some of
the convoluted nuances of x86, the x86-64 architecture, and some comparisons to
other architectures. Enhance your quest in becoming a systems programming ninja

Platform: strictly x86-32 GNU/Linux, gcc toolchain.
Assembly Syntax: AT&T/GAS.
Prereqs: Intermediate C